Есть некоторые проблемы с функцией удаления для одной таблицы. Мне нужна функция, которая будет обрабатывать исключения для ограничений внешнего ключа.
Необходимо исправить эту функцию, чтобы я мог добавить softdelete.
Я попытался скопировать один столбец из той же таблицы, и когда я удалил все хорошо, но есть 2 столбца, которые я не могу удалить.
Я поставлю здесь функцию удаления.
Если вам нужно больше кода из программного обеспечения, пожалуйста, сообщите мне, но я думаю, что это все, что вам нужно знать, в чем проблема.
Ошибка массажа : pastebin.com/CktBbbaX (по какой-то причине не может разместить в стеке)
Это функция php:
public function destroy($id)
{
Rate::findOrFail($id)->delete();
return redirect()->back()->with('status', __('messages/success.delete'));
}
Таблица тарифов, как вы можете видеть, у меня уже есть функция CASCADE для удаления, но она все еще не работает.
public function up()
{
Schema::create('rates', function (Blueprint $table) {
$table->increments('id');
$table->integer('supplier_id')->unsigned()->nullable();
$table->integer('house_id')->unsigned()->nullable();
$table->boolean('b4g_edit');
$table->integer('derived_qty')->unsigned()->nullable();
$table->integer('derived_price')->unsigned()->nullable();
$table->tinyInteger('limit_quantity')->default(0);
$table->decimal('round_prices', 10, 3);
// TRANSLATABLE
$table->integer('name_frontend')->unsigned();
$table->integer('name_backend')->unsigned();
$table->integer('description')->unsigned();
// END TRANSLATABLE
$table->timestamps();
$table->integer('created_by')->unsigned()->nullable();
$table->integer('updated_by')->unsigned()->nullable();
$table->foreign('supplier_id')->references('id')->on('suppliers')->onDelete('SET NULL');
$table->foreign('house_id')->references('id')->on('houses')->onDelete('SET NULL');
//translation foreign keys
$table->foreign('name_frontend')->references('group_id')->on('translations')->onDelete('CASCADE');
$table->foreign('name_backend')->references('group_id')->on('translations')->onDelete('CASCADE');
$table->foreign('description')->references('group_id')->on('translations')->onDelete('CASCADE');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('rates');
}
А это норма-части:
public function up()
{
Schema::create('rate_parts', function (Blueprint $table) {
$table->increments('id');
$table->integer('rate_id')->unsigned();
$table->enum(
'product_type',
[ 'overnight','transport','activity','addon' ]
);
$table->integer('product_id')->unsigned();
$table->date('date_from');
$table->date('date_to');
$table->enum(
'type',
[
'dummy',
'quantity',
'price',
'closed',
'cta',
'ctd',
'minstay',
'start',
'expire',
'min',
'max',
'max_beds',
'persons',
'daily_price',
'km_price',
'pricechange_abs',
'pricechange_rel'
]
);
$table->decimal('value', 10, 2);
$table->timestamps();
$table->integer('created_by')->unsigned()->nullable();
$table->integer('updated_by')->unsigned()->nullable();
$table->index(['product_id', 'product_type']);
$table->foreign('rate_id')->references('id')->on('rates');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('rate_parts');
}
И это последний перевод таблицы. (Опять проблемы с реализацией кода в стеке)
pastebin.com / h15Qe5mR