Как использовать, где в двух условиях на лезвие laravel - PullRequest
1 голос
/ 12 января 2020

Как я могу добавить два, где условие в laravel лезвие

({{ \App\Product::all()->where('category_id',$category->id  'user_id',Auth::user()->id)->count() }})

Ответы [ 3 ]

1 голос
/ 12 января 2020

Прежде чем ответить на ваш вопрос, я хотел бы отметить 2 вещи

1) Сначала не используйте \ App \ Product :: all () , а затем запрос where. Таким образом, вы получаете все записей из БД в виде коллекции, а затем выполняется операция where в коллекции, а не в БД. Вы не хотите этого, потому что, если у вас есть тысячи или миллионы записей, все они будут возвращены.

2) Не рекомендуется использовать запросы внутри ваших представлений. Просто получите результат запроса где-то внутри вашего проекта и передайте это значение в представление через контроллер.

Таким образом, для вашего запроса на самом деле есть 2 способа добавить несколько предложений where с помощью laravel построитель запросов

1) Использование цепочек:

({{ \App\Product::where('category_id',$category->id)->where('user_id',Auth::user()->id)->count() }})

2) Использование массива внутри где:

({{ \App\Product::where(['category_id' => $category->id, 'user_id' => Auth::user()->id])->count() }})
1 голос
/ 12 января 2020

Вы можете объединить несколько мест после друг друга.

({{ \App\Product::where('category_id', $category->id)->where('user_id', Auth::user()->id)->count() }})

Я предлагаю вам прочитать документацию построителя запросов , она объясняет все, что вы можете сделать достаточно хорошо.


Я также заметил, что вы начали свой запрос с all(), который будет извлекать все строки из базы данных, выполняющие эти условия where в вашем приложении. Их быстрее запустить в вашей базе данных, поэтому, удалив all(), запрос будет выполнен с этими where условиями, так как я думаю, что вы хотите.

0 голосов
/ 12 января 2020

вы можете использовать где условие в laravel блейде, как вы можете использовать их в вашем контроллере

({{ \App\Product::all()->where('category_id',$category->id)->where('user_id',Auth::user()->id)->count() }})
...