Comments (7)
I faced the same issue, and I found a way around this. By implementing FromQuery in your action as well, and passing the resource variable to the action you can create a custom query. My result looks something like this:
`class ExportUsers extends DownloadExcel implements FromQuery, WithMapping, WithHeadings
{
public $onlyOnDetail = true;
public function __construct(Request $request)
{
$this->project_id = $request->get('resources');
}
public function query()
{
return Users::where('project_id', $this->project_id);
}
public function map($product): array
{
return [
$user->name,
$user->project->name
];
}
}`
Assuming that there is 1 project with many users.
from laravel-nova-excel.
I think it's possible to execute an action on a relation resource. Create a hasMany field for Project -> Members and then if you go to show Project, you should see a list of Members. If you have a Member Excel action, then it should be there to execute.
from laravel-nova-excel.
@patrickbrouwers Thank you! Yes, this is exactly how I'm doing that.
I'm sorry, I wasn't clear. For better user experience I would like to skip the select-all step. Let me explain a little more:
If I'm managing a project I (almost always) want to have a list of all active members. I've created a filter for that. So now I have to do lots of things to get the list:
- Open the project's detail view.
- Choosing the correct filter.
- Selecting all (filtered) members
- Select Member's Excel action.
- Run the action.
What I would prefer:
- Open the project's detail view / Selecting project in project index view.
- Run action on project.
I'm sorry for the ugly English, I'm not a native speaker. I hope, it gets clear now, what I want to do.
Thank you very much for your help!
from laravel-nova-excel.
@simonedelmann the "select-all" step is a Nova thing, so we can't really do a lot about that. Currently Nova only allows us to run actions on selected rows.
from laravel-nova-excel.
OK. :( Anyway thank you very much!
from laravel-nova-excel.
Similar question here (and staying in Simons example): when I use an excel export action on members via the the detail view of projects (members as relation resource on a HasMany-Field), the export ignores all selections and filters I apply to the relation resources before. No matter how many members I select for my export, I always get all related members in my excel file. However, if I run this action on the index view of members it works just fine and respects my selections for the export. Any idea what's going on here, @patrickbrouwers ? I use the WithMapping concern btw. Many thanks!
from laravel-nova-excel.
I think it's easier to just call Laravel Excel directly in a Nova action in those cases.
from laravel-nova-excel.
Related Issues (20)
- Tip: Getting this to work on Google cloud engine HOT 1
- Enqueue export on demande HOT 1
- Method Laravel\Nova\Fields\FieldCollection::filterForIndex does not exist. HOT 1
- QueuedExport doesn't allow softDeleted data HOT 10
- FileNotFound after upgrade HOT 3
- [BUG] ExportResourceActionRequest::forAllMatchingResources in Nova 4.0 HOT 4
- QUESTION: how to include columns and extra rows from related resources HOT 10
- [BUG] Error in Nova 4.0 using default User Resource - Too few arguments HOT 8
- [QUESTION] How to export a nova resource to excel WITHOUT actions?
- [BUG] Error in Nova 4 when trying to use actions in lenses HOT 1
- [PROPOSAL] Implement strict null comparison
- "Select all"-download doesn't work HOT 9
- [BUG] MemoryCache class methods incompatible with Psr\SimpleCache\CacheInterface HOT 2
- Excel is failed to download in laravel nova HOT 2
- Cannot download excel sheet in forge server HOT 2
- [BUG] Crash with Nova 4.24.0; parameter type declaration mismatch in withName HOT 3
- Belogs to
- Select All via Relationship table Exports Entire Resource
- How to access the Resource/Model in the Query? HOT 1
- [BUG] No longer works with the latest version of Laravel Nova (4.32.9) HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from laravel-nova-excel.