【问题标题】:Relationship doesn't work in Blade view but it does in the controller关系在 Blade 视图中不起作用,但在控制器中起作用
【发布时间】:2023-03-09 03:20:03
【问题描述】:

我有以下代码

public function index()
    {
        //
        $leerlingen = DB::table('leerling')->get();

        $leerling = Admin_Leerling::find(1);
        dd($leerling->klas->title);

        return View::make('leerling.index',compact('leerlingen'));
    }

如您所见,我正试图在我的控制器中获取我的 Klas 的标题。这是有效的,我得到了正确的值。但是当我删除dd($leerling->klas->title); 并尝试做同样的事情但在我的 index.blade.php 中我得到一个错误。

@if(count($leerlingen))
                               @foreach($leerlingen as $leerling)
                                <tr>
                                    <td>{{{ $leerling->id }}}</td>
                                    <td>{{{ $leerling->voornaamLeerling . ' ' . $leerling->achternaamLeerling }}}</td>
                                    <td>{{{  $leerling->klas->title }}}</td>
                                    <td>
                                        <a href="{{ URL::route('admin.leerling.edit',$leerling->id) }} "> <button class="btn btn-blue">Wijzig</button></a>
                                        <a href="#" data-rel="dialog" data-dialog-text="Weet u zeker dat u deze leerling wilt verwijderen?" data-dialog-url="{{ URL::to('admin/leerling/delete',array($leerling->id)) }}"><button  class="btn btn-red">Verwijderen</button></a>
                                        @if($leerling->active == 1)
                                            <a href="{{ URL::to('admin/leerling/activate',array($leerling->id)) }}">  <button class="btn btn-green">Actief</button> </a>
                                        @else
                                        <a  href="{{ URL::to('admin/leerling/activate',array($leerling->id)) }}">   <button  class="btn btn-red"> Niet Actief</button></a>
                                        @endif
                                    </td>
                                </tr>
                               @endforeach
                        @endif

有人可以帮我解决这个问题吗?

谢谢!

【问题讨论】:

    标签: php laravel eloquent blade


    【解决方案1】:

    你应该在控制器中使用:

    $leerlingen = Admin_Leerling::get();
    

    或其他模型名称来获取您的数据,如果您使用查询构建器 (DB::table('leerling')-&gt;get();) 获取数据,它不是 Eloquent 对象,因此关系将不起作用

    【讨论】:

    • 对不起一件小事。如果我想得到 leerlingen 怎么办。 $klas = Admin_Klas::find($id); $lijst = $klas->leerlingen();这不起作用吗?
    【解决方案2】:

    要获得 $lijst 你可以这样做

       $lijst =Admin_Klas::find($id)->leerlingen;
    

    不用()来获取关系,并在你的视图中循环遍历$lijst

       @foreach( $lijst as $li ) {{$li->name}} @endforeach
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-18
      • 1970-01-01
      • 2021-04-30
      • 2013-03-15
      • 2020-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多