试图在laravel中获得非对象的属性

时间:2014-09-29 16:31:08

标签: php laravel laravel-4 eloquent

我有关系问题

// 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');
    }

}
门票模型中的

---&gt;功能(事件)不工作但(客户端)工作时使用

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

但是当我使用客户端

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

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:0)

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

确保您对1find

使用完全相同的ID(在本例中为events client个参数

评论后编辑

如果您已定义:

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

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

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

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