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

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

無法從表模型中獲取名稱并使用 Laravel 將其顯示在視圖中

無法從表模型中獲取名稱并使用 Laravel 將其顯示在視圖中

PHP
達令說 2021-11-05 12:53:31
我正在嘗試使用存儲在用戶表中的我subject_name從表中獲取 ,但是每當我嘗試這樣做時,我都會收到此錯誤。有什么幫助嗎?subjectsubject_id這種關系是一個用戶只能注冊一個主題,多個用戶可以選擇一個主題,因此是一對多的關系`Illuminate \ Database \ QueryException (42S02)SQLSTATE[42S02]: Base table or view not found: 1146 Table 'myunimentor_database.subject_user' doesn't exist (SQL: select `subjects`.*, `subject_user`.`user_id` as `pivot_user_id`, `subject_user`.`subject_id` as `pivot_subject_id` from `subjects` inner join `subject_user` on `subjects`.`id` = `subject_user`.`subject_id` where `subject_user`.`user_id` = 1)Previous exceptionsSQLSTATE[42S02]: Base table or view not found: 1146 Table 'myunimentor_database.subject_user' doesn't exist (42S02)`用戶模型<?phpnamespace App;use Illuminate\Notifications\Notifiable;use Illuminate\Contracts\Auth\MustVerifyEmail;use Illuminate\Foundation\Auth\User as Authenticatable;use App\UserType;use App\Subject;class User extends Authenticatable{    use Notifiable;    /**     * The attributes that are mass assignable.     *     * @var array     */    protected $fillable = [        'first_name', 'last_name', 'type', 'username', 'password',    ];    /**     * The attributes that should be hidden for arrays.     *     * @var array     */    protected $hidden = [        'password', 'remember_token',    ];    /**     * The attributes that should be cast to native types.     *     * @var array     */    protected $casts = [        'email_verified_at' => 'datetime',    ];    public function getAllUsers() {        return User::all();     }     public function userTypes()     {         return $this->belongsTo('App\Users');     }     public function subjects()    {        return $this->belongsToMany('App\Subject');    }}
查看完整描述

2 回答

?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

在您的用戶模型中,關系應該是belongsTo()


 public function subject(){

    return $this->belongsTo('App\Subject','subject_id','id');

}

現在您可以訪問您的主題名稱 Auth::user()->subject->subject_name


正如您所說,一個用戶只有一個主題,因此用戶 只屬于一個主題。


主題可以有多個用戶,這意味著HasMany。 用戶模型 ->所屬主題 主題模型 ->擁有用戶的HasMany


請在此處查看更多信息。https://laravel.com/docs/5.8/eloquent-relationships#one-to-many


查看完整回答
反對 回復 2021-11-05
?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

在您的用戶模型中,關系應該是belongsTo()


 public function subject(){

    return $this->belongsTo('App\Subject','subject_id','id');

}

現在您可以訪問您的主題名稱 Auth::user()->subject->subject_name


正如您所說,一個用戶只有一個主題,因此用戶 只屬于一個主題。


主題可以有多個用戶,這意味著HasMany。 用戶模型 ->所屬主題 主題模型 ->擁有用戶的HasMany


請在此處查看更多信息。https://laravel.com/docs/5.8/eloquent-relationships#one-to-many您的belongsToMany關系導致了問題。它導致 laravel 認為有一個名為subject_user的數據透視表,但遺憾的是沒有數據透視表。所以改變你的關系到belongsTo


public function subject(){

    return $this->belongsTo('App\Subject','subject_id');

}

這是另一個問題。在可填充數組中的用戶模型中,沒有 subject_id。所以subject_id 不會保存在數據庫中。將此添加到您的可填充數組中。


查看完整回答
反對 回復 2021-11-05
  • 2 回答
  • 0 關注
  • 175 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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