validate驗(yàn)證類(lèi),在不同的控制器下,為什么會(huì)產(chǎn)生不同效果,而且使用auth自帶登錄注冊(cè)功能
我的版本是laravel5.4
// 請(qǐng)把代碼文本粘貼到下方(請(qǐng)勿用圖片代替代碼)
這是/app/Http/Controllers/Auth/LoginController.php
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;//這里必須引入request類(lèi)才能傳參數(shù)給重寫(xiě)的validateLogin函數(shù)
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
* 登錄后重定向用戶的位置。
* @var string
*/
// protected $redirectTo = '/home';
protected function redirectTo()
{
return route('home') ;
}
/*
* protected validateLogin方法
* @param \Illuminate\Http\Request $request
* 重寫(xiě)登錄驗(yàn)證
*/
protected function validateLogin(Request $request)
{
$attributes = array(
"required" => ":attribute 不能為空",
"between" => ":attribute 長(zhǎng)度必須在 :min 和 :max 之間",
"string"=>":attribute 必須字符串",
"email"=>":attribute 已經(jīng)存在郵箱",
"max"=>":attribute 最大值",
"min"=>":attribute 最小值",
"confirmed"=>":attribute 驗(yàn)證字段必須有一個(gè)匹配字段 foo_confirmation,例如,如果驗(yàn)證字段是 password,必須輸入一個(gè)與之匹配的password_confirmation 字段。",
"unique"=>":attribute 已經(jīng)存在唯一郵箱"
);
$message= array(
'email'=>'請(qǐng)輸入合法郵箱',
'password'=>'請(qǐng)輸入密碼'
);
//validate使用對(duì)象的方法,傳入的必須是一個(gè)request對(duì)象
$this->validate($request, [
'email' => 'required|string|email|min:10', //這里不需要指定unique:users,插入才需要唯一,查詢不需要
'password' => 'required|string',
],$attributes,$message);
}
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
//其中這個(gè)except表示logout這個(gè)方法將不會(huì)受到這個(gè)中間件的影響 logout通常是登出方法
$this->middleware('guest')->except('logout');
}
public function showLoginForm()
{
return view("home.home_login");
}
}
======================================
這是/app/Http/Controllers/Auth/RegisterController.php
<?php
namespace App\Http\Controllers\Auth;
use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
class RegisterController extends Controller
{
/*
|--------------------------------------------------------------------------
| Register Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users as well as their
| validation and creation. By default this controller uses a trait to
| provide this functionality without requiring any additional code.
|
*/
use RegistersUsers;
/**
* 重寫(xiě)前臺(tái)注冊(cè)方法,可以覆蓋use RedirectsUsers類(lèi)里面的方法
*
* @return \Illuminate\Http\Response
*/
public function showRegistrationForm()
{
return view("home.home_register");
}
/**
* Where to redirect users after registration.
*
* @var string
*/
protected $redirectTo = '/home';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
//這里中間件驗(yàn)證是否已經(jīng)登錄,在RedirectIfAuthenticated類(lèi)里面
$this->middleware('guest');
}
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
$attributes = array(
"required" => ":attribute 不能為空",
"between" => ":attribute 長(zhǎng)度必須在 :min 和 :max 之間",
"string"=>":attribute 必須字符串",
"email"=>":attribute 已經(jīng)存在郵箱",
"max"=>":attribute 最大值",
"confirmed"=>":attribute 驗(yàn)證字段必須有一個(gè)匹配字段 foo_confirmation,例如,如果驗(yàn)證字段是 password,必須輸入一個(gè)與之匹配的password_confirmation 字段。",
"unique"=>":attribute 已經(jīng)存在唯一郵箱"
);
$message= array(
'name'=>'名字不能為空',
'email'=>'請(qǐng)輸入合法郵箱',
'password'=>'請(qǐng)輸入密碼'
);
$validator= Validator::make($data, [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users', //指定users表,這是在插入數(shù)據(jù)時(shí),檢查是否有唯一數(shù)據(jù),更新的時(shí)候不要用這個(gè)參數(shù)
//unique:table,column,except,idColumn
//驗(yàn)證字段在給定數(shù)據(jù)表上必須是唯一的,如果不指定column選項(xiàng),字段名將作為默認(rèn)column。
'password' => 'required|string|min:6|confirmed',
// confirmed驗(yàn)證此規(guī)則的值必須和 foo_confirmation 的值相同。比如,需要驗(yàn)證此規(guī)則的域是 password,那么在輸入中必須有一個(gè)與之相同的 password_confirmation 域。
],$attributes,$message);
return $validator;
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return \App\User
*/
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
}
為什么login登錄頁(yè)面提示錯(cuò)誤,卻沒(méi)有顯示自定義錯(cuò)誤
Register注冊(cè)頁(yè)面提示卻正常,請(qǐng)我究竟錯(cuò)在哪里了
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專(zhuān)業(yè)的國(guó)家
北大青鳥(niǎo)中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過(guò)二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。