【问题标题】:Undefined property: Illuminate\Database\Eloquent\Collection::$id Laravel 4未定义的属性:Illuminate\Database\Eloquent\Collection::$id Laravel 4
【发布时间】:2014-11-23 00:27:17
【问题描述】:

我正在使用 laravel v 4.2.. 我想创建更新记录。 你能帮我..这段代码有什么问题... 这是我的代码:

MatakuliahsController.php

公共功能编辑($id) { //$matakuliahs = $this->matakuliahs->find($id); $matakuliahs = Matakuliah::where('id','=',$id)->get(); if(is_null($matakuliahs)){ return Redirect::route('matakuliahs.index'); } 返回视图::make('matakuliahs.edit',compact('matakuliahs')); }

edit.blade.php

{{ Form::open(array('autocomplete' => 'off', 'method' => 'PATCH', 'route' => array('matakuliahs.update', $matakuliahs->id))) }} ... {{ 表单::close() }}

错误是:

未定义属性:Illuminate\Database\Eloquent\Collection::$id(查看:C:\xampp\htdocs\Laravel 4\projectLaravel\app\views\matakuliahs\edit.blade.php)

感谢您的关注和帮助..

【问题讨论】:

    标签: php collections properties undefined


    【解决方案1】:

    方法

    MyModel::find($id); 
    

    或与 Eloquent 的关系在 Laravel 4.2 上不起作用,只是下一个解决方案

    $myModel= new MyModel;
    $myModel->setConnection('mysql2');
    $myModel= $myModel->where('id', $id)->first();
    

    【讨论】:

      【解决方案2】:
      $matakuliahs = Matakuliah::where('id','=',$id)->get(); 
      

      返回 id 等于 $id 的对象集合。在这种情况下,如果 id 是唯一的,那么当然会返回 1 个元素的集合,而不是对象本身,所以当你这样做时:

      $matakuliahs->id
      

      您正在尝试访问 $matakuliahs 对象的 id 属性,但在这种情况下,$matakuliahs 不是对象而是集合。 要解决这个问题,你可以这样做:
      1.

      $matakuliahs = Matakuliah::where('id','=',$id)->get()->first(); 
      

      $matakuliahs = Matakuliah::where('id','=',$id)->first(); 
      

      获取对象并访问属性。

      2.在你看来:

      @foreach( $matakuliahs as $matakuliah)
      //your code here
      @endforeach
      

      希望对您有所帮助。谢谢

      【讨论】:

        【解决方案3】:

        您试图获得的是模型集合上的关系,该关系存在于该集合中的对象上。您可以使用 first() 来返回第一个,或者您需要为每个人使用循环来获取他们的项目

            $matakuliahs = Matakuliah::where('id','=',$id)->get()->first();
        

        【讨论】:

          【解决方案4】:

          在你的控制器方法中试试这个:

          $matakuliahs = Matakuliah::find($id);
          

          然后将其传递给视图。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-02-12
            • 2016-07-08
            • 2016-06-02
            • 2017-03-05
            • 2018-10-22
            • 2018-11-19
            • 2019-08-12
            • 1970-01-01
            相关资源
            最近更新 更多