База данных обновления драйвера LaravelPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 База данных обновления драйвера Laravel

Сообщение Anonymous »

У меня есть кусок кода, который выполняет следующее: < /p>

Создать строку базы данных (библиотека Spatie Media) < /li>
Создать работу, которая добавляет что -то к столбцу A и спасает объект (также Spatie Media Library) < /li>
добавляет что -то в колонку A и Saves (наш собственный код) < /li> < /li> < /> . /> Это работает нормально при тестировании в прямом эфире. Работа работает после HTTP -запроса, поэтому я на самом деле получаю дополнение от работы в последнее время в DB, ​​мне не волнует заказ. < /P>
Теперь я строю модульный тест. В тесте у меня есть драйвер синхронизации. Таким образом, работа выполняется напрямую, когда она создается. Это отлично подходит для тестирования. < /P>
Проблема состоит в том, что когда последний кусок кода добавляет что -то в столбец, он не выполняет обновление () на объекте и не видит изменения, внесенного в задание. Я не хочу менять свой основной код, чтобы сделать обновление, так как это только для модульного теста. Что я могу сделать, чтобы код работал из модульного теста? Для СМИ SPATIE. Он хранится как JSON в базе данных, поэтому, когда я выполняю второй вызов после работы, он в настоящее время перезаписывает (и, таким образом, забывает) задание.\Config::set('queue.default', 'sync');

$user = new User();
$user->fill(['name' => 'username', 'email'=>'email'.rand(0,99999), 'password'=>'password'])->save();
dump($user->name); // username

class MyJob implements ShouldQueue
{
use Queueable;
public function __construct(public User $user){}
public function handle() {
$this->user->name = $this->user->name . " additionFromJob";
$this->user->save();
dump($this->user->name); // username additionFromJob
}
}

MyJob::dispatch($user);

$user->name = $user->name . " someOtherAddition";
$user->save();

dump($user->name);
//expected: username additionFromJob someOtherAddition
//actual: username someOtherAddition


Подробнее здесь: https://stackoverflow.com/questions/796 ... h-database
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»