Нет, вы не можете полагаться на базу данных для возврата записи из вашего текущего сценария.
Метод ->latest()
всегда будет сортировать записи с самой последней created_at
датой в первую очередь.
https://laravel.com/docs/6.x/queries#ordering-grouping-limit-and-offset
Но вы не предоставили ни кода, ни объяснения, почему это так. Если вы только что создали новую запись, зачем вам снова запрашивать ее? У вас уже должен быть доступ к экземпляру модели.
РЕДАКТИРОВАТЬ: Я сделал несколько правок, чтобы продемонстрировать, как вы будете передавать модель из контроллера в событие, как указано вкомментарии. Пожалуйста, оставьте свой код, если вам нужна более конкретная помощь.
SomeController.php
function store()
{
$model = Model::create([
'some_data' => 1
]);
// fire an event with the newly created model
event(new SomeEvent($model));
dd($model);
}
------------------------
Model {
// ...
attributes: [
'id' => 101,
'some_data' => 1
'created_at' => '2019-10-06 12:48:01',
'updated_at' => '2019-10-06 12:48:01',
]
// ...
}
SomeEvent.php
<?php
namespace App\Events;
use App\Model;
use Illuminate\Queue\SerializesModels;
class SomeEvent
{
use SerializesModels;
public $model;
public function __construct(Model $model)
{
$this->model = $model;
// ...
}
}
РЕДАКТИРОВАТЬ: В соответствии с вашим новым добавленным кодом, вам просто нужно передать новую модель обратно в исходный метод. Вы могли бы сделать что-то вроде этого.
Public function StoreNotif($data)
{
// add a return statement
return auth()->user()->Notif()->create(store $data here..);
}
Public function SendNotif()
{
$data="123";
// store the returned data to a variable
$model = $this->StoreNotif($data);
// call the event with the model instance
event(new Notification(model));
}