簡體   English   中英

我如何在Laravel中建立一個EmiratesTo()關系?

[英]How can I do a belongsTo() relation in Laravel?

這是我的模型User.php

class User extends Authenticatable
{
    use Notifiable;

    protected $fillable = [
        'name', 'email', 'password', 'cell_phone', 'province_id', 'city_id', 'job'
    ];

    protected $hidden = [
        'password', 'remember_token',
    ];

    public function city()
    {
        return $this->belongsTo('City');
    }
}

這是我的控制器的一部分:

$user_info = User::find(Auth::user()->id);
dd($user_info->city);

並拋出以下內容:

“未定義的類常量'city'”

我該如何解決該問題?


表結構:

// users
+----+--------+---------+----------
| id |  name  | city_id | ...
+----+--------+---------+----------
| 1  | Jack   | 5       | ...

// city
+----+--------+
| id |  name  |
+----+--------+
| 1  | Tehran |

您需要傳遞完整的類名:

return $this->belongsTo('App\City');

要么:

return $this->belongsTo(City::class);

另外,您不需要這樣做:

$user_info = User::find(Auth::user()->id);

由於Auth::user()已經加載了用戶實例,因此您可以通過以下方式獲取城市實例:

Auth::user()->city

基本上,您沒有提供城市類別名稱的完整路徑,這就是您所屬的To關系無法正常工作的原因。

例如您的代碼必須是

return $this->belongs To('App/City');

因為您的應用程序文件夾中有城市類模塊和其他模塊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM