Laravel 5: Как использовать 'where' или 'orderBy', используя eloquent? - PullRequest
0 голосов
/ 14 ноября 2018

Перво-наперво, это не дубликат Laravel 4: как "заказать" с помощью Eloquent ORM

У меня есть эта модель Пользователь, тогда у меня есть эта другая модель Идея. Я пишу представление с подробностями пользователя и хочу опубликовать все идеи, предложенные пользователем. Теперь идеи имеют статус, первый статус - «ПРОЕКТ», это означает, что только пользователь, опубликовавший идею, может ее просмотреть, идея не должна показываться другим пользователям, просматривающим профиль.

Используя eloquent, я мог бы сделать что-то вроде:

@foreach($user->idea as $idea)
    ...display details...
@endforeach

Моя проблема в том, что этот подход будет циклически проходить через все идеи И в том порядке, в котором они были представлены. Я могу добавить @if, чтобы показать только то, что я хочу, например

@foreach($user->idea as $idea)
    @if($idea->status !='DRAFT')
        ...show the idea...
    @endif
@endforeach

Но я не думаю, что это разумный способ сделать это, я хотел бы сделать что-то вроде

$ideas = $user->idea->where('status', '<>', 'DRAFT')

и затем циклически перебирайте переменную $ideas, или, по крайней мере, я бы хотел что-то вроде

$ideas = $user->idea->orderBy('created_at', 'desc')

Но я понятия не имею, как это сделать.

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Вы можете использовать здесь, где это предложение

DB::table('products_to_categories')
    ->where('categories_id', $id )
    ->update([
        'categories_id' => $unassigned_cat_id
    ]);

и вы можете использовать предложение orderBy следующим образом

DB::table('products_to_categories')
    ->where('categories_id', $id )
    ->orderBy('subId','DESC');
0 голосов
/ 14 ноября 2018

Вы можете сделать это так:

$ideas = $user->idea()
    ->where('status', '<>', 'DRAFT')
    ->orderBy('created_at', 'desc')
    ->get();

Когда вы используете ->idea(), он запускает запрос.

Для получения дополнительной информации о том, как запросить отношение: https://laravel.com/docs/5.7/eloquent-relationships#querying-relations

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...