Laravel一对多关系问题与学分名称

时间:2017-04-20 18:24:53

标签: laravel-5.2 relationship one-to-many

我在laravel中定义了一个简单的一对多关系。用户拥有许多积分,而积分属于用户。

用户模型

/**
 * Relationship to the users credits
 *
 * @return \Illuminate\Database\Eloquent\Relations\HasMany
 */
public function credits()
{
    return $this->hasMany(Credit::class);
}

信用模型

/**
 * Relationship to the user that this credit belongs to
 *
 * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
 */
public function user()
{
    return $this->belongsTo(User::class);
}

控制器

/**
 * Return a user
 *
 * @param $user_id
 *
 * @return User
 */
public function getUser($user_id)
{
    $user = $this->user->findOrFail($user_id);
     // Dumping and Dieing works fine, but when i return 
     // the User instance i get an error.
     // dd($user->toArray()); 
    return $user;
}

我收到错误:

“error”:0,“message”:“类Illuminate \ Database \ Eloquent \ Collection的对象无法转换为int”

2 个答案:

答案 0 :(得分:0)

发现了这个问题。

模型中有另一个地方期望$ this->信用点返回null。该代码预计此代码更新,但没有考虑$ this->信用将是一个集合的事实。

答案 1 :(得分:0)

如果要从此user_id中获取用户,只需在控制器中输入User::where('user_id', '=', $user_id)->first()。 并且不要忘记将user_id从刀片服务器传递到控制器。 希望对您有用