如何在 laravel 中定义表单内的动作?
Posted
技术标签:
【中文标题】如何在 laravel 中定义表单内的动作?【英文标题】:How to define action inside form in laravel? 【发布时间】:2019-11-01 00:59:12 【问题描述】:我只是想向表单添加一个动作,我正在尝试如下:
Form::open(['action'=> ['AuthController@login'], 'method'=>"POST",'class'=>'login-form'])
但我收到以下错误:
Action App\Http\Controllers\AuthController@login not defined. (View: D:\server\htdocs\PMS\resources\views\custom_auth\login.blade.php)
我配置 laravel 集体 html。我的代码有什么问题?
更新:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Validator;
use Auth;
class AuthController extends Controller
function show()
return view('custom_auth.login');
public function login(Request $request)
print_r($request); exit;
$this->validate($request,[
'email' => 'required|email',
'password' => 'required|alphaNum|min:3'
]);
$user_data = array(
'email' => $request->get('email'),
'password' => $request->get('password')
);
if(Auth::attempt($user_data))
return redirect('/dashboard');
else
return back()->with('error','Wrong Credential');
【问题讨论】:
是否有一个名为app/Http/Controllers/AuthController.php
的文件?里面有function login
吗?
是的。我查过了。
【参考方案1】:
使用Form
helper 时,您无需将操作放入数组中,因此请尝试:
Form::open(['action'=> 'AuthController@login', 'method'=>"POST",'class'=>'login-form'])
当然,请确保 public
login()
方法存在于您的 AuthController
中
另外,不要忘记将其添加到您的路线文件中,routes/web.php
:
Route::post('login', 'AuthController@login');
希望对你有帮助
【讨论】:
感谢您的宝贵时间。我更新并发现同样的错误。 你能粘贴 AuthController 的代码吗?我想看看你是否有有效的登录方法 我更新了我的问题并分享了AuthController的代码。 更新了我的答案,请尝试将其添加到您的路线文件中,查看更新后的答案以上是关于如何在 laravel 中定义表单内的动作?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 laravel 表单验证错误消息中给出自定义字段名称
在 Laravel 5 中使用表单请求验证时如何添加自定义验证规则
如何修复'动作必须是普通对象。使用自定义中间件进行异步操作。