【问题标题】:Laravel one to many relationship issue with credits nameLaravel 与学分名称的一对多关系问题
【发布时间】:2017-04-20 18:24:52
【问题描述】:

我在 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"

【问题讨论】:

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


    【解决方案1】:

    发现问题。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-11-25
        • 2020-01-09
        • 2014-11-11
        • 1970-01-01
        • 2018-03-16
        • 2014-02-17
        • 2019-05-06
        • 2014-05-24
        相关资源
        最近更新 更多