亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel 的雄辯關系和 MySQL 的外鍵——belongsTo 不會產生關系

Laravel 的雄辯關系和 MySQL 的外鍵——belongsTo 不會產生關系

PHP
喵喔喔 2023-11-03 15:14:53
我認為我對 Laravel 雄辯的關系(版本 7)有誤解。主要問題是:它們需要 MySQL 外鍵才能工作嗎?雙向都需要 FK 嗎?情況:我有用戶,我有帳戶。每個用戶有一個帳戶,每個帳戶屬于一個用戶。用戶遷移:class CreateUsersTable extends Migration{    public function up()    {        Schema::create('users', function (Blueprint $table)        {            $table->id();            $table->string('name');            $table->string('email')->unique();            $table->string('password');            $table->rememberToken();            $table->timestamp('updated_at');            $table->timestamp('email_verified_at')->nullable();            $table->timestamp('created_at')->useCurrent();        });    }}賬戶遷移:class CreateAccountsTable extends Migration{    public function up()    {        Schema::create('accounts', function (Blueprint $table)        {            $table->id('owner');            $table->bigInteger('currency');            $table->integer('currencyGenerators');            $table->foreign('owner')->references('id')->on('users');            $table->timestamp('updated_at');            $table->dateTime('lastResourceUpdate')->nullable()->useCurrent();            $table->timestamp('created_at')->useCurrent();        });    }}因此,我有一個引用 users.id 的 MySQL FKcounts.owner。用戶型號:class User extends Authenticatable{    ...        public function account(): HasOne    {        return $this->hasOne(Account::class, 'owner');    }}賬戶模型:class Account extends Model{    ...    public function user(): BelongsTo    {        return $this->belongsTo(User::class, 'id');    }}我可以檢索用戶的帳戶:$users = User::all();dd($users[0]);App\User {#1030 ▼#primaryKey: "id"...#relations: array:1 [▼"account" => App\Account {#1185 ?}]...但我無法獲取該帳戶的用戶:$accounts = Account::all();dd($accounts[0]);App\Account {#1241 ▼    #primaryKey: "owner"    ...    #relations: array:1 [▼    "user" => null    ]    ...我的用戶表中是否需要一個 FK 來引用帳戶的所有者?(因為 Laravel 的文檔return $this->hasOne('App\Phone', 'foreign_key');在https://laravel.com/docs/7.x/eloquent-relationships#introduction中提到。或者我這里的問題是什么?
查看完整描述

1 回答

?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

您必須在帳戶模型中使用“所有者”列

return $this->belongsTo(User::class, 'owner','id');


查看完整回答
反對 回復 2023-11-03
  • 1 回答
  • 0 關注
  • 182 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號