2014-09-29 86 views
0

我在门票模型--->函数(事件)的关系试图让非对象的财产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 

我怎样才能使它的工作?

回答

0

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

确保您使用完全相同的ID(在这种情况下1作为find参数都为eventsclient

编辑时,COMMENT

如果你定义:

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

你应该试着用这种方式来定义它:

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

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

+0

public function events(){ return $ this-> belongsTo('Events'); //不工作 } public function client(){ return $ this-> belongsTo('client'); //这个工作 } – 2014-09-29 17:05:48

+0

@SayedEldwansy我已经更新了我的答案 – 2014-09-29 17:53:21