试图获取laravel中非对象的属性


Trying to get property of non-object in laravel

我在方面有问题

// Ticket Model 
<?php
class Ticket extends Eloquent {

    protected $table = 'tickets';
    public $timestamps = false;
    protected $fillable = array('client_id','event_id');
    public function events(){
        return $this->belongsTo('Events'); // Not Working
    }
    public function client(){
        return $this->belongsTo('Events'); // this working
    }
}
-------------------------
//Events Model
class Events extends Eloquent {

    protected $table = 'events';
    public $timestamps = false;
    protected $fillable = array('name','area','map1','map2','photo','date','time');
    public function ticket(){
        return $this->hasMany('Ticket');
    }
}

在票证模型中-->当我使用时,功能(事件)不工作,但(客户端)工作

$ticket = Ticket::find(1);
return $ticket->events->name; // this not working 

但是当我使用客户端时

$ticket = Ticket::find(1);
return $ticket->client->name;  // This Working Fine

我怎样才能使它工作?

如果这两个函数具有相同的内容(如您所示),结果应该完全相同。CCD_ 1似乎不适用于任何其他函数或属性。

确保使用与eventsclientfind参数完全相同的id(在本例中为1

评论后编辑

如果您已经定义:

public function events(){
    return $this->belongsTo('Events'); // this working
}

你可能应该尝试这样定义它:

public function events(){
    return $this->belongsTo('Events','event_id'); 
}

您还应该考虑以单数形式命名或建模对象(不是类Events,而是类Event)。