我想了解laravel雄辯的關係,所以我創建了兩個表。在laravel遷移定義的表的結構是 爲mostpopular表用laravel雄辯的關係選擇數據
Schema::create('mostpopulars',function(Blueprint $table){
$table->increments('id');
$table->integer('song_id')->unsigned();
$table->index('song_id');
$table->foreign('song_id')->references('id')->on('song_details')->delete('cascade');
});
爲song_detail表
Schema::create('song_details', function (Blueprint $table) {
$table->increments('id');
$table->string('song_title');
$table->string('song_name');
$table->string('song_album');
$table->string('song_singer');
$table->string('song_musicby');
$table->string('song_location');
$table->string('song_album_image');
$table->string('song_language');
$table->string('song_lyrics',3000);
$table->timestamps();
});
然後在Mostpopular模型定義的函數對與2表
public function song_detail()
{
return $this->hasOne('App\Song_detail','id');
}
和控制器索引功能我想要做這樣的事情
$songs = Song_detail::select()->latest()->get();
$malayalamSongs = Mostpopular::select('song_id')->groupBy('song_id')->havingRaw('COUNT(*) > 2')->get();
$mp = $malayalamSongs;
dd($mp->song_detail);
,但得到的錯誤
Undefined property: Illuminate\Database\Eloquent\Collection::$Song_detail
請幫我找出錯誤和我所試圖做的是從song_details表,其中song_id
發生兩次以上song_id
獲得歌曲的細節是mostpopular表。
您song_detail模型需要需要通過belongsTo –
確定我加入公共職能songsdetail( ) { \t return $ this-> belongTo('App \ Mostpoular'); } –
但我得到相同的錯誤 –