【问题标题】:How to pass ID from Laravel Blade view to Model如何将 ID 从 Laravel Blade 视图传递给模型
【发布时间】:2021-06-25 06:53:13
【问题描述】:

问题我正在尝试将刀片视图 @foreach 循环中的 $id 传递给 Model,以便我可以返回与此特定 page 关联的所有卡片。

  • 看板有很多页面、列、卡片
  • 页面有很多卡片
  • 列和有许多卡片

想法是,您可以单击所有任务,然后它会转到 http://kanban.test/team/kanban/1/show-all 并显示所有任务。

当您点击pages 时,它们就像标签过滤器一样,会将您带到 http://kanban.test/team/kanban/1/1/show

当我手动设置page id = 1 时,它确实有效。当我尝试传递 ID 时,它没有给出任何错误,但没有任何显示。

手动设置 ID

// Column.php Model
public function tasksOnPage(){
        return $this->cards()->where('page_id',1);
    }

// Blade View
@foreach ($kanban->columns as $column )

   @foreach ($column->tasksOnPage as $card)
      @include('kanbans.show-card') 
   @endforeach

@endforeach

试图传递 id

当我执行{{$page->id}} 时,它确实在每列中显示1 的正确ID。

// Column.php Model
public function tasksOnPage($id){
        return $this->cards()->where('page_id',$id);
    }

// Blade View
@foreach ($kanban->columns as $column )

   @foreach ($column->tasksOnPage($page->id) as $card)
       @include('kanbans.show-card') 
   @endforeach

@endforeach

如果我遇到一些错误,那会很有帮助 >.

【问题讨论】:

  • 您可以通过 JavaScript 更改/更新/设置值并通过 Ajax 拉取数据,我可以知道您当前的流程吗?
  • 我没有使用 Vue,而只是在这里使用 vanilla laravel。
  • 好吧,我不是在谈论 Vue,如果你希望将数据从视图/刀片传递到控制器并获取与你必须执行 HTTP 请求的值相对应的数据,你可以通过常规执行请求php/Ajax,在你的情况下,Ajax 将是一个不错的选择,如果你愿意,你可以使用 Vue 看看 jQuery,它很简单,但很老
  • 啊,谢谢,会调查的 :) 还是个新手>.

标签: laravel eloquent laravel-blade


【解决方案1】:

我决定把它做成一个 livewire 组件,我可以通过这种方式传递 ID。

@foreach ($kanbans as $kanban )
   @livewire('kanbans.show-sidebar-kanban', ['kanban'=>$kanban], key($kanban->id))
@endforeach

这个关于嵌套的视频很有帮助:)

对于任何可能被困于此的人

https://laravel-livewire.com/screencasts/nesting

【讨论】:

    【解决方案2】:

    试试这个解决方案

    // Blade View
    @foreach ($kanban->columns as $column )
    
       @foreach ($column->cards()->where('page_id', $page->id) as $card)
           @include('kanbans.show-card') 
       @endforeach
    
    @endforeach
    

    【讨论】:

      猜你喜欢
      • 2016-04-12
      • 2011-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-02
      • 2023-03-14
      • 2021-08-19
      相关资源
      最近更新 更多