Это сообщение должно сортировать и задавать вопрос. Привет всем, Я разрабатываю большую систему, которая эффективно использует триггеры. В настоящее время мы запускаем серверную часть на Laravel 5.2 с php 7, используя phpmyadmin. В Laravel нет достоверной документации о том, как использовать триггер через миграции, и из того, что я обнаружил, вам в основном нужно сделать это «сырой».Laravel 5.x База данных Триггеры и возможные передовые методы
Ниже приведен простой пример, который я знаю, о том, как написать триггер в миграции:
class CreateAccountTriggerTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
DB::unprepared('
CREATE TRIGGER `my_trigger_name` AFTER INSERT ON `table_the_change_happened`
FOR EACH ROW
BEGIN
INSERT INTO `this_table`
(field1,field2,field3)
VALUES
('value1','value2','value3')
END
');
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down() {
DB::unprepared('DROP TRIGGER IF EXISTS `my_trigger_name`');
}
}
Вопрос: Кто-нибудь знает чистый способ, чтобы использовать переменные в Laravel-х построитель запросов?
Метод DB :: unprepared() не позволяет прикреплять связанные элементы к нему. Попытка этого в Eloquent почти невозможна, поскольку нет твердой документации, которую я нашел для этой проблемы. Если кто-нибудь сможет это объяснить, я бы очень признателен. Спасибо заранее
Обновление По желанию здесь будет примером того, что я имею в виду, используя переменный в построителе запросов Laravel в:
$stuff = bcrypt($random_numbers);
DB::unprepared('
CREATE TRIGGER `my_trigger_name` AFTER INSERT ON `table_the_change_happened`
FOR EACH ROW
BEGIN
INSERT INTO `this_table`
(field1,field2,field3)
VALUES
('value1','value2','value3',"$stuff")
END
');
Можете ли вы привести пример того, что вы подразумеваете под «использованием переменных в построителе запросов laravel»? – patricus
@patricus Обязательно! см. обновленные изменения –
Это одно из приложений, которое имеет «Моделирование событий» Laravel. Нет необходимости в триггере, чтобы сделать это, когда вы можете просто присоединить модель к 'table_the_change_happened', а затем в' public function boot() {parent :: boot(); }); вы можете просто добавить свою логику, чтобы сделать вставку после 'parent :: boot()' – Ohgodwhy