在 "hasOne" 关系中未定义 属性
Undefined property in an "hasOne" relation
我尝试了很多可能性,但总是出现同样的错误。
也许你应该帮助我...希望如此!我正在研究 Laravel 4.2
我有两个 tables :
用户:
$table->增量('id');
$table->字符串('email', 50);
...
帐号:
$table->增量('id');
$table->整数('user_id')->无符号();
我有 2 个模型:
用户:
public function account()
{
return $this->hasOne('Account', 'id','user_id');
}
帐号:
public function user()
{
return $this->belongsTo('User', 'id');
}
现在我想通过关系得到账户table中的user_id:
$userId = Auth::id();
$account = User::find($userId)->Account()->user_id;
我收到此错误:ErrorException
未定义 属性: Illuminate\Database\Eloquent\Relations\HasOne::$user_id
你能帮帮我吗?
提前致谢。
尝试
$account = User::find($userId)->Account->user_id;
User::find($userId)->Account()
实际上是 return 类型的对象 HasOne
,你需要使用 User::find($userId)->Account()->get()
来获取包含实际帐户对象的数组所以 User::find($userId)->Account()->get()[0]
实际上给你 Account 对象。而User::find($userId)->Account->user_id
是一个laravelbuild-in自动映射Account对象的特性,所以直接获取Account对象。
如果 User::find($userId)->account
不起作用,请检查 getAccountAttribute()
是否不存在。
我尝试了很多可能性,但总是出现同样的错误。
也许你应该帮助我...希望如此!我正在研究 Laravel 4.2
我有两个 tables :
用户:
$table->增量('id'); $table->字符串('email', 50); ...
帐号:
$table->增量('id'); $table->整数('user_id')->无符号();
我有 2 个模型:
用户:
public function account()
{
return $this->hasOne('Account', 'id','user_id');
}
帐号:
public function user()
{
return $this->belongsTo('User', 'id');
}
现在我想通过关系得到账户table中的user_id:
$userId = Auth::id();
$account = User::find($userId)->Account()->user_id;
我收到此错误:ErrorException 未定义 属性: Illuminate\Database\Eloquent\Relations\HasOne::$user_id
你能帮帮我吗?
提前致谢。
尝试
$account = User::find($userId)->Account->user_id;
User::find($userId)->Account()
实际上是 return 类型的对象 HasOne
,你需要使用 User::find($userId)->Account()->get()
来获取包含实际帐户对象的数组所以 User::find($userId)->Account()->get()[0]
实际上给你 Account 对象。而User::find($userId)->Account->user_id
是一个laravelbuild-in自动映射Account对象的特性,所以直接获取Account对象。
如果 User::find($userId)->account
不起作用,请检查 getAccountAttribute()
是否不存在。