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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel一对多关系问题与学分名称相关的知识,希望对你有一定的参考价值。

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

用户模型

/**
 * Relationship to the users credits
 *
 * @return IlluminateDatabaseEloquentRelationsHasMany
 */
public function credits()
{
    return $this->hasMany(Credit::class);
}

信用模型

/**
 * Relationship to the user that this credit belongs to
 *
 * @return IlluminateDatabaseEloquentRelationsBelongsTo
 */
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”

答案

发现了这个问题。

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

另一答案

如果你想从这个user_id获取用户,只需在你的控制器中写User::where('user_id', '=', $user_id)->first()。并且不要忘记将user_id从刀片传递给控制器​​。我希望这对你有用

以上是关于Laravel一对多关系问题与学分名称的主要内容,如果未能解决你的问题,请参考以下文章

laravel 4中的一对多关系帮助

Laravel 一对多关系与 2 个主键

无法删除一对多关系中的记录 laravel eloquent

Laravel 5.4雄辩的一对多关系

在 JavaScript 代码中访问 Laravel 关系

Laravel 5 删除一对多关系