#php #laravel #backend
#php #laravel #серверная часть
Вопрос:
Я пытаюсь получить доступ к Laravel Framework и застрял при получении значений со страницы в базе данных.
Это фрагменты моего контроллера, маршрутов, части просмотра, которые могут помочь в понимании того, что я делаю
web.php (для маршрутов):
<?php
use IlluminateSupportFacadesRoute;
Route::resource('posts', 'PostController');
Postcontroller.php (просто фрагмент)
<?php
public function create()
{
//
return view('posts.create');
}
public function store(Request $request)
{
//
$this->validate($request , array(
'title' => 'required',
'body' => 'required'
));
$post = new Post;
$post->title = $request->title;
$post->body = $request->body;
$post->save();
return redirect()->route('posts.show', $post->id);
}
create.blade.php (для просмотра)
<div class="row">
<div class="col-mid-8 col-md-offset-2" >
<h1>Create New Post</h1>
<hr>
<form route='posts.store' >
@csrf
<div class="form-group">
<label for="exampleInputEmail1">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp">
<small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<input type="password" class="form-control" id="exampleInputPassword1">
</div>
<div class="form-group form-check">
<input type="checkbox" class="form-check-input" id="exampleCheck1">
<label class="form-check-label" for="exampleCheck1">Check me out</label>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
Комментарии:
1. Для передачи входных данных требуются
name
атрибуты. Нет входных данных с какими-либо именами, не говоря уже о чем-либо, помеченномtitle
илиbody
.
Ответ №1:
Проблема с вашим кодом заключается в том, что у вас нет name
свойств при вводе, поэтому в ваш внутренний код ничего не передается.
Добавьте имя к своим входным данным следующим образом (они должны быть другими, иначе они будут перезаписаны):
<input type="text" class="form-control" id="your-unique-input-id" name"your_unique_input_name">
Затем, когда вы отправляете свою форму, все входные данные, в которых есть name
атрибут, будут переданы вашему серверному методу. Затем вы можете получить их значение, используя name
, которое вы указали им ранее. Итак, в этом примере:
$request->your_unique_input_name // Which will return anything that user typed in that field