1
私は多型の関係をフィルタリングする次のクエリがあります。私は、クエリログを有効にするとLaravel 5.2 - クエリビルダ構文多態性の関係をフィルタリングするには?
$companyLogo = $user->company->files->where('file_type', 'Logo')->first();
これは私が得るものです:
"query" => "select * from `files` where `files`.`fileable_id` = ? and `files`.`fileable_id` is not null and `files`.`fileable_type` = ?"
"bindings" => array:2 [▼
0 => 1
1 => "App\Company"
]
あなたはそれが私を含めていないようにどこの句?
*更新*
これは、会社とファイルモデル間、私が持っているpolymorhpic関係です:
class File extends Model {
protected $fillable = [
'name',
'path',
'size',
'mime_type',
'file_type',
'fileable_id',
'fileable_type',
];
public function fileable()
{
return $this->morphTo();
}
}
class Company extends Model {
public function files()
{
return $this->morphMany('App\File', 'fileable');
}
}
クエリ研のいずれかwhere句を含めて、なぜ私はよく分かりません。多態性の関係をフィルタリングする構文は正しいですか?企業は異なる種類のファイルを持つことができます。書類、ロゴなどを選択する必要があります。
'file_type'または' fileable_type'? – aynber
また、バインディングに「Logo」も出力されていませんか?彼らが正しい質問であると確信していますか? – Purgatory
あなたのログ内のクエリが質問内のクエリと一致していないようです – chiliNUT