Данные не хранятся в БД [Laravel 5.5]

Я использую Laravel 5.5. Я хотел сохранить свои данные в БД, но когда я пытаюсь это сделать — ничего не происходит. Вот мой код MarketController

public function store(Request $request)
{$this->validate($request, [
'name' => 'required|unique:markets|max:255',
'website' => 'required',
'city' => 'required',
]);
Market::create($request->all());
return redirect('markets');
}

Мой код save.blade.php

<!DOCTYPE html>
<html>
<head>
<title>Create Market</title>
</head>
<body>
@extends('layouts.app')
@section('main')
<form action="{{ route('markets.store') }}" method="post">
{{ csrf_field() }}
<input type="hidden" name="_token" value="DaBSErIRWPPI">
<label for="name">Name</label>
<input type="text" name="name" id="name">
<label for="city">Location</label>
<input type="text" name="city" id="city">
<label for="website">Market's website</label>
<input type="text" name="website" id="website">
<button type="submit"><a href="{{route('markets.store')}}">Add Market</a>
</button>
</form>
</form>

И вот код index.blade.php

<h1><a href="{{ route('markets.create', $market) }}">Add Market</a></h1>

Ничего не произошло. Пожалуйста помоги. Спасибо!

0

Решение

Ваш маршрут должен отображаться в качестве моего примера, так как я не знаю заголовка вашей страницы маршрутов:

Route::post('store', 'MarketController@store')->name('store');

Реально вы должны запустить: php artisan make:request StoreRequest

в пределах StorageRequest.php изменить authorize от return false; в return true; а затем добавьте правила:

return [
'name' => 'required|max:255',
'website' => 'required',
'city' => 'required'
]

Ваш контроллер может быть упрощен:

public function store(StoreRequest $storeRequest)
{
$form = $storeRequest->all();

Market::create([
'name' => $form['name'],
'website' => $form['website'],
'city' => $form['city']
]);

return redirect('markets');

}

Ваша форма немного переполнена, вот сломанная версия:

<form action="{{ route('store') }}" method="post">
{{ csrf_field() }}
<label for="name">Name</label>
<input type="text" name="name" id="name">

<label for="city">Location</label>
<input type="text" name="city" id="city">

<label for="website">Market's website</label>
<input type="text" name="website" id="website">

<input type="submit" value="Submit">
</form>

ОБНОВЛЕНО

Ваш пример не возвращает ошибку обратно в форму, поэтому вот еще одна обновленная версия:

<form action="{{ route('store') }}" method="post">
{{ csrf_field() }}
<label for="name">Name</label>
<input type="text" name="name" id="name">

@if ($errors->has('name'))
<span class="help-block">
<strong>{{ $errors->first('name') }}</strong>
</span>
@endif

<label for="city">Location</label>
<input type="text" name="city" id="city">

@if ($errors->has('city'))
<span class="help-block">
<strong>{{ $errors->first('city') }}</strong>
</span>
@endif

<label for="website">Market's website</label>
<input type="text" name="website" id="website">

@if ($errors->has('website'))
<span class="help-block">
<strong>{{ $errors->first('website') }}</strong>
</span>
@endif

<input type="submit" value="Submit">
</form>

Так что теперь, если обязательное поле не было заполнено, оно вернется, выдав ошибку в форме с указанием того, какое поле ввода не было заполнено.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector