我使用三个表播放列表、entityAssets 和 playlistEntityAssets。 PlaylistEntityassets 表有 2 列 playlist_id,asset_id 引用其他两个表。当我尝试通过 playlist_id 获取数据过滤器时,它给了我这个错误。
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'playlist_entity_assets.play_list_id' in 'where clause' (SQL: select * from
playlist_entity_assets
whereplaylist_entity_assets
.play_list_id
= 3 andplaylist_entity_assets
.play_list_id
is not null)
这是我的获取方法。即使我的表有一个“playlist_id”列。此查询调用“play_list_id”列。
public function show($subdomain, $id) {
$universe = Auth::user()->getCurrentUniverse();
$playlist = PlayList::find($id);
//return empty responce
if( $playlist == null){
return Response::json();
}
$playlistAssets = array();
$playlistEntityAssets = $playlist->playlistEntityAssets;
foreach($playlistEntityAssets as $plEntityAsset){
$asset = $plEntityAsset->entityAsset;
$plAsset = ['asset' => $asset ];
$playlistAssets[] = $plAsset;
}
return Response::json($playlistAssets);
}
我想通过“playlistEntityAssets”表中的 playlist_id 来过滤所有 enityAssets 数据过滤器。
使用 Illuminate\Database\Eloquent\Model;
类 PlaylistEntityAssets 扩展模型 {
protected $table = 'playlist_entity_assets';
public function user()
{
return $this->belongsTo('asset');
}
public function universe()
{
return $this->belongsTo('Universe');
}
public function playlist(){
return $this->belongsTo('Playlist', 'playlist_id');
}
public function entityAsset(){
return $this->belongsTo('EntityAsset', 'asset_id');
}
最佳答案
我已经解决了这个问题。答案是将确切的列名称放入播放列表模型中。
class PlayList extends Eloquent{
public function playlistEntityAssets()
{
return $this->hasMany('PlaylistEntityAssets', 'playlist_id' );
}
}
关于mysql - 找不到列 : 1054 Unknown column 'playlist_entity_assets. play_list_id',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58518430/