Giter VIP home page Giter VIP logo

Comments (7)

ThisIsMyFavouriteJar avatar ThisIsMyFavouriteJar commented on June 20, 2024 1

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.

patrickbrouwers avatar patrickbrouwers commented on June 20, 2024

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.

simonedelmann avatar simonedelmann commented on June 20, 2024

@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:

  1. Open the project's detail view.
  2. Choosing the correct filter.
  3. Selecting all (filtered) members
  4. Select Member's Excel action.
  5. Run the action.

What I would prefer:

  1. Open the project's detail view / Selecting project in project index view.
  2. 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.

patrickbrouwers avatar patrickbrouwers commented on June 20, 2024

@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.

simonedelmann avatar simonedelmann commented on June 20, 2024

OK. :( Anyway thank you very much!

from laravel-nova-excel.

larshanskrause avatar larshanskrause commented on June 20, 2024

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.

patrickbrouwers avatar patrickbrouwers commented on June 20, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.