laravel 单击按钮时写入 mysql 数据库
laravel write to mysql database on button click
我目前可以在加载其中一个页面时将数据写入 mysql。这是我的控制器中的代码。
public function manuelSignUP()
{
DB :: table("users") -> insertGetId
(
array("firstname" => "John", "lastname"=> "John",
"passwordHash" => "password", "userslevelID" => 2)
);
DB :: table("userlevel") -> insertGetID
(
array("userlevelID" => $userlevelID, "name" => $name)
);
return view("pages.manualsignup");
}
所以我想在单击按钮时通过我的 blade 文件调用此函数,但我一直在努力这样做。这是我的带有按钮的 blade 文件。
<!DOCTYPE html>
<html>
<head> </head>
<body> This should </body>
<br><br><br><br>
<form method="post">
<button type="button"> submit </button>
</form>
</html>
根据 google 搜索我知道我可以使用 ajax 来帮助我解决这个问题,但我相信有办法只使用 html post 方法。我正在尝试使用第二种方式,没有 ajax。
我建议您使用 RESTful 控制器并在不先使用 ajax 的情况下对其进行测试。从学习RESTful controllers
和Routes
开始:
https://laravel.com/docs/5.1/controllers#restful-resource-controllers
https://laravel.com/docs/5.1/routing
您只需要创建 RESTful 控制器并使用 store
方法将数据存储在数据库中。例如:
{!! Form::model($data, array('action' => 'MyController@store') !!}
{!! Form::text('name', null, array('required', 'class'=>'form-control', 'placeholder'=>'Name')) !!}
{!! Form::submit('Create and store in DB', array('class'=>'btn btn-success')) !!}
当您测试所有内容时,如果您不想每次将数据存储在数据库中时都重新加载页面,请使用 AJAX。
如果您不使用 ajax,则需要使用 action
属性指定表单的位置,仅使用 method
是不够的。
查看
<form action="{{ route('signup') }}" method="post">
<button type="submit"> submit </button>
</form>
routes.php
Route::post('/signup', [
'as' => 'signup',
'uses' => 'YourController@manuelSignUP',
]);
此外,通常您应该使用表单来输入数据,而不是硬编码。
我目前可以在加载其中一个页面时将数据写入 mysql。这是我的控制器中的代码。
public function manuelSignUP()
{
DB :: table("users") -> insertGetId
(
array("firstname" => "John", "lastname"=> "John",
"passwordHash" => "password", "userslevelID" => 2)
);
DB :: table("userlevel") -> insertGetID
(
array("userlevelID" => $userlevelID, "name" => $name)
);
return view("pages.manualsignup");
}
所以我想在单击按钮时通过我的 blade 文件调用此函数,但我一直在努力这样做。这是我的带有按钮的 blade 文件。
<!DOCTYPE html>
<html>
<head> </head>
<body> This should </body>
<br><br><br><br>
<form method="post">
<button type="button"> submit </button>
</form>
</html>
根据 google 搜索我知道我可以使用 ajax 来帮助我解决这个问题,但我相信有办法只使用 html post 方法。我正在尝试使用第二种方式,没有 ajax。
我建议您使用 RESTful 控制器并在不先使用 ajax 的情况下对其进行测试。从学习RESTful controllers
和Routes
开始:
https://laravel.com/docs/5.1/controllers#restful-resource-controllers https://laravel.com/docs/5.1/routing
您只需要创建 RESTful 控制器并使用 store
方法将数据存储在数据库中。例如:
{!! Form::model($data, array('action' => 'MyController@store') !!}
{!! Form::text('name', null, array('required', 'class'=>'form-control', 'placeholder'=>'Name')) !!}
{!! Form::submit('Create and store in DB', array('class'=>'btn btn-success')) !!}
当您测试所有内容时,如果您不想每次将数据存储在数据库中时都重新加载页面,请使用 AJAX。
如果您不使用 ajax,则需要使用 action
属性指定表单的位置,仅使用 method
是不够的。
查看
<form action="{{ route('signup') }}" method="post">
<button type="submit"> submit </button>
</form>
routes.php
Route::post('/signup', [
'as' => 'signup',
'uses' => 'YourController@manuelSignUP',
]);
此外,通常您应该使用表单来输入数据,而不是硬编码。