【问题标题】:Undefined property: Illuminate\Database\Eloquent\Collection未定义的属性:Illuminate\Database\Eloquent\Collection
【发布时间】:2016-06-02 04:15:44
【问题描述】:

我的项目中有一个用户有一些电话,每个电话都属于一个用户。我使用 laravel elequent 关系来检索用户调用,如下所示: 用户模型:

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $table = 'customers';

    public function customer_logs()
    {
        return $this->hasMany('App\call_log');
    }

调用模型:

namespace App;

use Illuminate\Database\Eloquent\Model;

class call_log extends Model
{
    protected $table = 'customer_logs';

    public function customer()
    {
        return $this->belongsTo('App\User');
    }

但是当我在控制器中调用 customer_logs 函数时,我遇到了这个错误: 未定义属性:Illuminate\Database\Eloquent\Collection::$customer_logs

这是我的控制器:

$user = User::first()->get();
        $user->customer_logs->toArray();

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您首先使用,因此无需在您的查询中调用 get。改成

    $user = User::first(); 
    $user->customer_logs()
    

    【讨论】:

    • 非常感谢您的帮助。它适用于 first() 但在哪里呢? User::where('number',$phone)->get()
    • 您能否投票或接受答案。使用 get 它将返回一个集合/项目数组,因此您必须遍历该集合。 foreach($users as $usr){ 逻辑/代码放在这里}
    • 如果您只想要一条记录,您可以将获取更改为第一条
    猜你喜欢
    • 1970-01-01
    • 2016-07-08
    • 2014-11-23
    • 2017-03-05
    • 2017-02-12
    • 1970-01-01
    • 2016-09-05
    • 1970-01-01
    • 2018-11-22
    相关资源
    最近更新 更多