У меня есть простая таблица с несколькими данными, которая выглядит следующим образом:
Таблица страниц
Я создал связьк таблице с именем prebids
, например, так:
public function up()
{
Schema::create('prebids', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('bidder_name');
$table->string('params_name');
$table->string('params_value');
$table->bigInteger('page_id')->unsigned();
$table->foreign('page_id')->references('id')->on('pages')->onDelete('cascade');
$table->timestamps();
});
}
Вот модель страницы:
class Page extends Model
{
protected $fillable = [
"title",
"articles",
"status"
];
public function prebids() {
return $this->hasMany('App\Prebid');
}
}
Вот модель с префиксами:
class Prebid extends Model
{
protected $fillable = [
"params_name",
"params_value",
"bidder_name"
];
public function page()
{
return $this->belongsTo('App\Page');
}
}
Сейчаскогда пользователь нажимает кнопку «Добавить предоплаты», я хочу сохранить данные предоплаты в соответствии с моделью.
Итак, при pages index.blade.php
при добавлении кнопки у меня появляется
<td>
<a href="{{ route('prebids.create'), $page->id}}"
class="btn btn-sm btn-primary">Add prebid</a>
И на prebid controller
У меня есть следующее:
class PrebidController extends Controller
{
public function create()
{
$prebid = Prebid::all();
$page = Page::all();
return view('prebids.create', ['page' => $page]);
}
public function store(Request $request)
{
foreach ($request->input() as $parameters) {
$parameters = new prebid();
$parameters->save();
}
return redirect("/pages")->with("sucess", "data successfully saved");
}
}
Теперь, когда пользователь нажимает кнопку «Добавить пребид», он открывает форму, в которой пользователь может добавлять информацию и отправлять, когда я отправляю, я получаю следующее сообщение об ошибке
SQLSTATE [23000]: нарушение ограничения целостности: 1452 Невозможно добавить или обновить дочернюю строку: ошибка ограничения внешнего ключа (royalad
. prebids
, CONSTRAINT prebids_page_id_foreign
FOREIGN KEY (page_id
)ССЫЛКИ pages
(id
) НА УДАЛИТЬ КАСКАД) (SQL: вставить в prebids
(updated_at
, created_at
) значения (2019-11-06 15:24:34, 2019-11-06 15: 24: 34))
Что не так с моим кодом?