Как применить reverse () к отношению в laravel? - PullRequest
0 голосов
/ 08 мая 2018

Я реализую чат-приложение в Laravel. Я хочу отобразить последние 10 записей, как,

message 1
message 2
message 3
message 4
.
.
.

Здесь я могу получить последние 10 записей из БД и получить такие данные, как,

message 10
message 9
message 8
message 7
.
.
.

Я хочу отменить этот заказ.

Метод управления

public function getMessages(MeetupGroup $group)
{
    $messages   = $group->meetup_group_messages()->paginate(2);
    return response()->json(['messages' => $messages]);
}

Модель группы

public function meetup_group_messages()
{
        return $this->hasMany('App\Models\MeetupGroupMessage\MeetupGroupMessage', 'meetup_group_id', 'id')->latest()->with('user');
}

Я проверил reverse(), но он работает на объекте модели, а не на объекте запроса. Я не понимаю, как это изменить.

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Есть несколько проблем с тем, как вы собираетесь это делать.

Следуйте документации для Условных обозначений вашей Модели, Контроллера и Миграции. Этот ответ упрощает соглашения об именах.

Ваш контроллер и модель также должны быть ресурсом, чтобы они были легко доступны через ваш маршрут. Это также включает функциональность CRUD. Это может быть достигнуто с командой ремесленника. Эта команда также использует соглашение об именах Laravel для вашей таблицы базы данных, миграции, контроллера и модели, что упрощает использование передовых методов разработки Laravel.

php artisan make:model Message --migration --controller --resource

Теперь добавьте ресурс в ваш файл route / web.php.

Route::resource('messages', 'MessagesController');

Чтобы просмотреть вновь созданные маршруты ресурсов, используйте эту команду:

php artisan route:list

Затем вам нужно будет создать 3 вида лезвий, индексировать, создавать и редактировать. Я предлагаю создать папку с именем «messages» для сортировки этих представлений от других. Ваш контроллер будет иметь функцию индекса внутри него. Это должно выглядеть так.

public function index()
{
  $messages = Message::orderBy('updated_at', 'asc')->paginate(2);
  return view('messages.index', compact('messages'));
}

Ваш файл index.blade.php должен содержать этот код:

@foreach($message as $message)
  <p>{{ $message->db_column_name1 }} </p>
  <p>{{ $message->db_column_name2 }} </p>
@endforeach
0 голосов
/ 08 мая 2018

Попробуйте метод контроллера как:

use Illuminate\Support\Collection;

public function getMessages(MeetupGroup $group)
{
    $messages   = $group->meetup_group_messages()->paginate(2);
    return response()->json(['messages' => $messages->sortBy('Your_Column_name')->values()->all()]);
}

или

public function getMessages(MeetupGroup $group)
{
    $messages   = $group->meetup_group_messages()->paginate(2);

    $records = collect($messages)->sortBy('Your_Column_name')->values()->all();

    return response()->json(['messages' => $records]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...