Laravel用户关系停止工作

时间:2014-06-18 07:55:08

标签: php laravel laravel-4 relationship

我刚下载并使用最新的Laravel 4.2开始了一个新项目。

我的问题出现在User模型中,如果我定义了任何不起作用的关系。

用户模型

use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;

class User extends Eloquent implements UserInterface, RemindableInterface {

    use UserTrait, RemindableTrait;

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'users';

    /**
     * The attributes excluded from the model's JSON form.
     *
     * @var array
     */
    protected $hidden = array('password', 'remember_token');


    public function metadata()
    {
        return $this->hasOne('Metadata');
    }


    public function test()
    {
        return "hello test";
    }

}

元数据模型

class Metadata extends Eloquent
{
    public $timestamps = false;

    protected $primaryKey = 'user_id';

    protected $table = "users_metadata";

    protected $fillable = array('user_id', 'first_name', 'last_name');

    public function user()
    {
        return $this->belongsTo('User');
    }
}

所以,如果我这样做

$user =  User::find(1);

dd($user->metadata);

我回来Null,上面我在我的User模型中制作了一个测试方法

如果我这样做:

$user =  User::find(1);

dd($user->test());

我得到了

Call to undefined method Illuminate\Database\Query\Builder::test() 

为什么呢?它显然在那里。我把我的代码放在早期版本中,它工作正常。

真正令我困惑的是,如果我这样做:

$metadata =  Metadata::find(1);

dd($metadata->user);

使用belongsTo方法工作正常,我用另一种关系测试User模型 - 结果相同。

0 个答案:

没有答案