1

Laravel BACK PACK 管理パネル。Anonymous Global スコープを使用したい。こちらがリンクです。以下のスクリーンショットには 2 つのテーブル (users 、 accounts_profiles) があり、user_id の列がある accounts_profiles で確認できます。

アカウント プロファイル テーブル ユーザー テーブル

まず、説明させてください。私がユーザーモデルに入れているそのコード。

protected static function boot(){
    parent::boot();
    $userId = 1;
    static::addGlobalScope('users', function (Builder $builder) use ($userId) {
      return  $builder->where('users.id', $userId);
    });
}

そして、それは私にそのレコードを管理パネルに与えました.(私は user_id "1" レコードのみを取得しているため) RECORDS

しかし、今は2つのテーブル(users、accounts_profiles)の間で結合したいと考えています。ユーザーモデルでクエリを書くことはわかっています。

protected static function boot(){
    parent::boot();
    $userId = 1;
    static::addGlobalScope('users', function (Builder $builder) use ($userId) {
      return  $builder->join("accounts_profiles_biz", 'users.id', '=', 'accounts_profiles_biz.user_id');
    });
}

しかし、そのエラーが発生しています。

response_message: [
{
code: 9997,
message: "SQLSTATE[42702]: Ambiguous column: 7 ERROR: column reference "id" is ambiguous LINE 1: ...s"."id" = "accounts_profiles_biz"."user_id" where "id" = $1 ... ^ (SQL: select * from "users" inner join "accounts_profiles_biz" on "users"."id" = "accounts_profiles_biz"."user_id" where "id" = 1 and "users"."deleted_at" is null limit 1), File: D:\xampp\htdocs\laravel\vendor\laravel\framework\src\Illuminate\Database\Connection.php, Line: 669",

Exception Code: "SQLSTATE[42702]: Ambiguous column: 7 ERROR: column reference "id" is ambiguous LINE 1: ...s"."id" = "accounts_profiles_biz"."user_id" where "id" = $1 ... ^ (SQL: select * from "users" inner join "accounts_profiles_biz" on "users"."id" = "accounts_profiles_biz"."user_id" where "id" = 1 and "users"."deleted_at" is null limit 1)"
}
]

どうもありがとう。

4

1 に答える 1