#php #html #mysql #laravel #crud
#php #HTML #mysql #laravel #crud
Вопрос:
Когда я отправляю свою пользовательскую форму, ничего не происходит: я не понимаю, почему ничего не происходит. Если я изменю метод «POST» на «PUT», он перенаправит меня только на страницу индекса. Пожалуйста, помогите. Спасибо. Маршрут CRUD:
use IlluminateSupportFacadesRoute;
use AppHttpControllersPostsController;
Route::resource('posts', PostsController::class);
Функция сохранения в PostsController:
public function store(Request $request)
{
$request->validate([
'Product1' => 'required',
]);
$post = new Posts();
$post->Product1= $request->Product1;
$post->save();
return redirect()->route('posts.index')->with('success', 'Post created successfully');
}
HTML-форма:
<form method="POST" action="{{ route('posts.store') }}" enctype="multipart/form-data">
@csrf
<table class="table" style="border-style: none;">
<tr>
<th>{{ __('Product1:') }}</th>
<td><input type="text" name="Product1" class="form-control"></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" class="btn btn-primary">
</td>
</tr>
</table>
</form>
Комментарии:
1. вы проверяли в исходном коде браузера, правильно ли сгенерировано действие формы?
2. Как? Вы имеете в виду в консоли браузера? ничего не происходит.
Ответ №1:
Добро пожаловать в SO
ваш код неверен
<input type="text" name="title" class="form-control">
здесь name
важен атрибут, он создает ключ, который затем попадает в серверную часть для этого кода $request->title
, который вы получите в своем контроллере
но ваш код должен быть таким
<form method="POST" action="{{ route('posts.store') }}" enctype="multipart/form-data">
@csrf
<table class="table" style="border-style: none;">
<tr>
<th>{{ __('Product1:') }}</th>
<td><input type="text" name="product" class="form-control"></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" class="btn btn-primary">
</td>
</tr>
</table>
</form>
в контроллере
public function store(Request $request)
{
$request->validate([
'product' => 'required',
]);
$post = new Posts();
$post->Product1= $request->product; // it should be match with input name
$post->save();
return redirect()->route('posts.index')->with('success', 'Post created successfully');
}
Комментарии:
1. Спасибо за ответ. Я изменил атрибуты name, но моя проблема связана с методом POST. Когда я нажимаю отправить, ничего не происходит.