私は、クエリを動的にwhere句に渡したい:Where節 - varとして渡しますか?
User::where('published', '=', '1')->get();
私がしようとすると、配列に渡すと、エラー:
$where = ['published', '=', '1'];
User::where($where)->get();
がどのように私はAに保存されているのparamsに渡すことができますvar?
私は、クエリを動的にwhere句に渡したい:Where節 - varとして渡しますか?
User::where('published', '=', '1')->get();
私がしようとすると、配列に渡すと、エラー:
$where = ['published', '=', '1'];
User::where($where)->get();
がどのように私はAに保存されているのparamsに渡すことができますvar?
これはできません。
$where = ['published', '1'];
User::where($where[0], $where[1])->get();
しかし、もっと良い方法がscopes使用することです:何らかの理由であなたが似ていますが、作業の何かが必要な場合は、代わりにこれを試して
User::published()->get();
をそしてUser
モデルで:
public function scopePublished($query)
{
return $query->where('published', 1);
}
これを試すことができますか?
$attributes = [
[
'column' => 'published',
'condition' => '=',
'value' => '1'
],
[
'column' => 'first_name',
'condition' => '=',
'value' => 'John'
],
];
$getUser = User::where(function($query) use($attributes){
foreach($attributes as $key => $value){
$query->where($value['column'],$value['condition'],$value['value']);
}
})->get();
wouldntの仕事。条件を指定したくない場合もあるので – panthro
(部分的に)生のクエリを実行し、SQL文を文字列として渡すことができます。
$where = "'published' = '1'";
User::whereRaw($where)->get();
またはこのような:このような何か私がスコープに句で渡すことができ、すべての可能性を秘めていると同じように
$where = "'published' = :published";
$published = 1;
User::whereRaw($where, compact('published'))->get();
スコープは、より良い方法ではないでしょう – panthro