我正在Laravel中实现聊天应用程序。我想显示最新的10条记录,如
message 1
message 2
message 3
message 4
.
.
.
在这里,我可以从db获取最新的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()
,但它适用于不在查询对象上的模型对象。我没有得到如何扭转这一点。
答案 0 :(得分:2)
尝试控制器方法:
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]);
}
答案 1 :(得分:1)
如何进行此操作会有一些问题。
按照模型,控制器和迁移的Naming Conventions文档进行操作。这个answer简化了命名约定。
您的控制器和型号也应该是一种资源,以便通过您的路线轻松访问。这也启用了CRUD功能。这可以通过工匠命令来实现。此命令还将Laravel的命名约定用于您的数据库表,迁移,控制器和模型,从而可以轻松地遵循Laravel开发中的最佳实践。
php artisan make:model Message --migration --controller --resource
现在将资源添加到routes / 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