こんにちは私はuser_id
自分のユーザーモデルにを渡し、これをプロファイルテーブルに結合して、ユーザーの名を次のように取得します。
public function scopefirstnameByUserId($id)
{
return static::where('users.id','=',$id)->join('profiles', function ($join,$id) {
$join->where('profiles.user_id', '=', $id);
})->pluck('firstname');
}
使用法:
User::firstnameByUserId(2);
ただし、次のエラーが発生します。
Missing argument 2 for User::{closure}()
関数が次のように更新されました。
public function scopefirstnameByUserId($id)
{
return static::where('users.id','=',$id)->join('profiles',function ($join) use ($id) {
$join->where('profiles.user_id', '=', $id);
})->pluck('firstname');
}
しかし、今このエラーをスローします:
Object of class Illuminate\Database\Eloquent\Builder could not be converted to string
私が間違っていることについて何か考えはありますか?
あなたのコードでは:
function ($join,$id) {
}
する必要があります:
function ($join) use ($id) {
$join->where('profiles.user_id', '=', $id);
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加