我的代碼有問題。我知道我的想法在我自己的想法中是正確的,但沒有奏效......我想取出登錄用戶喜歡的視頻。
這是我喜歡的表,它存盤了 amv_id 和 user_id
Schema::create('like_videos', function (Blueprint $table) {
$table->id();
$table->foreignId("amv_id");
$table->foreignId("user_id");
$table->timestamps();
});
這是我的 amv 表,它存盤了所有視頻
Schema::create('amvs', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->string('desc');
$table->integer('view');
$table->integer('like');
$table->integer('dislike');
$table->integer('category_id');
$table->foreignId('user_id');
$table->string('video');
$table->string('thumb');
$table->timestamps();
});
這是我的用戶表,它存盤了用戶資訊
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->integer('sub');
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->integer('suspend');
$table->rememberToken();
$table->timestamps();
});
這是我的控制器代碼
public function likedvideo() {
$id = auth()->user()->id;
$auth = auth()->user();
$liked = like_video::with('amvs')->where("user_id", "=", $id)->latest();
return view("amvs.likedvideos", [
'liked' => $liked,
'auth' => $auth,
]);
}
我在 Amv Model 上使用了模型關系
public function amvs() {
return $this->hasMany('App\Models\like_video');
}
這是我的視圖檔案
@foreach ($liked->amvs as $amv)
<div class="col">
<a href="{{url("amvtube/watch/$amv->id")}}" hljs-string">">
<div hljs-number">2 rounded-0" style="width: 18rem;">
<img src="{{asset('/image/'.$amv->thumb)}}" alt="無法正確建立模型關系。它說屬性在 Eloquent 構建器實體中不存在" width="286px" height="161px">
<div hljs-string">">
<h5 hljs-string">">{{Str::limit($amv->title, 40, '...')}}</h5>
<span hljs-string">">{{$amv->user->name}} / Genre: {{$amv->category->name}}</span> <br>
<span hljs-string">">
{{$amv->view}} View {{$amv->created_at->diffForHumans()}}
</span>
</div>
</div>
</a>
</div>
@endforeach
uj5u.com熱心網友回復:
更新的答案:
將此添加到您的控制器:
public function likedvideo() {
$id = auth()->user()->id;
$data["auth"] = auth()->user();
$data["liked"] = Amv::with('liked_videos')->where("user_id", "=", $id)->get();
return view("amvs.likedvideos",$data);
}
這要Amv建模:
public function liked_videos() {
return $this->hasMany('App\Models\like_video', 'amv_id', 'id');
}
在視圖中:
var_dump($liked);die();
@foreach ($liked as $amv)
<div class="col">
<a href="{{url("amvtube/watch/$amv->id")}}" hljs-string">">
<div hljs-number">2 rounded-0" style="width: 18rem;">
<img src="{{asset('/image/'.$amv->thumb)}}" alt="無法正確建立模型關系。它說屬性在 Eloquent 構建器實體中不存在" width="286px" height="161px">
<div hljs-string">">
<h5 hljs-string">">{{Str::limit($amv->title, 40, '...')}}</h5>
<span hljs-string">">{{$amv->user->name}} / Genre: {{$amv->category->name}}</span> <br>
<span hljs-string">">
{{$amv->view}} View {{$amv->created_at->diffForHumans()}}
</span>
</div>
</div>
</a>
</div>
@endforeach
uj5u.com熱心網友回復:
您 like_videos 中的外鍵錯誤。
Laravel 默認查找的格式是帶有 id 的表名。
Schema::create('like_videos', function (Blueprint $table) {
$table->id();
$table->foreignId("amvs_id");
$table->foreignId("user_id");
$table->timestamps();
});
uj5u.com熱心網友回復:
提到錯誤 laravel 應用程式正在顯示?可能您的users表有id并且您正在使用foreignId('user_id')找不到哪個模型,因此請使用與id()欄位相同的名稱foreignId()或將關系設為:
$table->unsignedBigInteger('user_id');
然后與國外連接:
$table->foreign('user_id')->references('id')->on('Users');
像這樣修改表模式:
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->integer('sub');
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->integer('suspend');
$table->rememberToken();
$table->timestamps();
});
Schema::create('amvs', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->string('desc');
$table->integer('view');
$table->integer('like');
$table->integer('dislike');
$table->integer('category_id');
$table->foreignId('user_id')->contrained('users');
$table->string('video');
$table->string('thumb');
$table->timestamps();
});
Schema::create('like_videos', function (Blueprint $table) {
$table->id();
$table->foreignId("amv_id")->constrained('amvs');
$table->foreignId("user_id")->constrained('users');
$table->timestamps();
});``
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/513543.html
標籤:php拉拉维尔
上一篇:stdClassphp缺少欄位
下一篇:php表格顏色行按日期分組
