php - 为什么我的 post 方法在 Laravel 中不起作用?
问题描述
我在 Laravel 中创建了一个表单来将注册数据提交到数据库。在其他可行的视图中,我已经以与其他形式相同的方式完成了此操作。检查错字,但当我按下提交按钮时,没有任何反应。
'registrations/create.blade.php' 中的表单 HTML
<form method="POST" action="{{route('registrations.store')}}"></form>
<div class="container">
<p>Prašome užpildyti visus laukus.</p>
<hr>
@csrf
<label for="vardas"><b>Vardas</b></label>
<input type="text" placeholder="Įveskite savo vardą" name="vardas" required>
<label for="pavarde"><b>Pavardė</b></label>
<input type="text" placeholder="Įveskite savo pavardę" name="pavarde" required>
<label for="el_pastas"><b>El. paštas</b></label>
<input type="text" placeholder="Įveskite savo el. paštą" name="el_pastas" required>
<label for="tel_nr"><b>Telefono nr.</b></label>
<input type="text" placeholder="Įveskite savo telefono nr." name="tel_nr" required>
<b>Pasirinkite norimą gitaros mokytoją</b><br><br>
<input type="radio" name="mokytojas_id" value="1"> Petras Petrauskas<br>
<input type="radio" name="mokytojas_id" value="2"> Andrius Rimiškis<br>
<input type="radio" name="mokytojas_id" value="3"> Virgis Stakėnas<br>
<hr>
<button type="submit" class="registerbtn"><b>Registruotis</b></button>
</div>
</form>
'routes.web.php'
Route::get('/', 'PagesController@index');
Route::get('/contacts', 'PagesController@contacts');
Route::get('/form', 'PagesController@form');
Route::get('/guitarists', 'PagesController@guitarists');
Route::get('/news', 'PagesController@news');
Route::resource('questions', 'QuestionsController');
Route::resource('registrations', 'RegistrationsController');
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::get('/admin', 'AdminController@dashboard');
Route::resource('guitarists', 'MokytojaiController');
模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Registration extends Model
{
protected $fillable = ['vardas', 'pavarde', 'el_pastas', 'tel_nr', 'mokytojas_id'];
}
控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
use App\Registration;
class RegistrationsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//$questions = DB::select('SELECT * FROM questions');
//$questions = Question::orderBy('id','desc')->take(1)->get();
//$questions = Question::orderBy('id','desc')->get();
$registrations = Registration::orderBy('id','desc')->paginate(10);
return view ('registrations.index')->with('registrations', $registrations);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('registrations.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$request->validate([
'vardas' => 'required',
'pavarde' => 'required',
'el_pastas' => 'required',
'tel_nr' => 'required',
'mokytojas_id' => 'required'
]);
$post = $request->all();
Registration::create($post);
return redirect('/registrations/create')->with('status', 'Registracija atlikta!');
}
解决方案
您的表单标签立即关闭。
<form method="POST" action="{{route('registrations.store')}}"></form>
这是您在此处发布时的类型,还是很可能是问题所在。按钮没有做任何事情,因为它不在表单标签内。
推荐阅读
- c++ - 如何编写用于从 C 访问 C++ 类成员的 Wrapper(具有继承和构造函数)
- r - 有没有更好的方法将大数据(约 2000 万行)从 Hive 数据库移动到 R 中的 Netezza 数据库?
- reactjs - 限制仅输入数字?
- css - 改变 mat-slide-toggle 的方向
- c - 如何在 mac 上重新编译“.h 文件”?
- php - 编辑用户资料:如何避免用户输入重复值?
- java - 如何让 Maven 自动重试(从失败的模块恢复)?
- java - 我的 Firestore 项目集合中的文档重复
- css - 相邻显示多张图片的提示和技巧
- elasticsearch - Elasticsearch X-Pack 内置集群警报电子邮件