『壹』 laravel表单验证怎样禁止跳转
验证成功才会跳转
验证不成功是不会跳转的...
实在不行 return false
『贰』 laravel 使用Request 验证form表单
$this->validate($request,[ '验证的表单名称(例如name)' => '验证规则', ],[],[ '验证的表单名称(例如name)' => '你想改成的中文(例如 姓名)' ])
『叁』 laravel的eloquate当中,提交表单数据有两种方式,一个是静态,一个是动态,
数据填充(也就是批量导入数据)不应该使用EloquentORM,而是用Laravel的Artisan命令行,使用起来也很简单。帮助文档里写的比较清楚了参考:/docs/4.2/migrations#database-seeding最下面的DatabaseSeeding
『肆』 laravel中间件类似于拦截器吗
没错,类似过滤器。
get/post请求=>域名=>服务器=>路由=>中间件=>控制器
『伍』 怎样在laravel框架路由群组添加过滤器
框架下载好了,但是想要很好的使用,可能我们还有一些东西需要知道,这就是配置。和项目有关的配置是在 app/config 文件夹里,但是除了这里还有一些配置可能是我们需要的。作为一个基础教程,我就不一一介绍了,只是选择一些大家配置比较多的地方讲解一下。
app/config 中的配置说明
在 app/config 文件夹中经常配置的一般有两个文件:app.php 和 database.php 两个文件,他们一个是配置项目杂项的、一个是配置数据库的。下面我就里面的常用配置做一下解释: 先是 app.php 文件
其实 app.php 后面还有一些内容,但那些基本上不需要你修改。(只有添加第三方包的时候才有需要,我们会到时候再讲)
接下来介绍 database.php 文件
<?php
return array(
'fetch' => PDO::FETCH_CLASS,
'default' => 'meinv',
'connections' => array(
'sqlite' => array(
'driver' => 'sqlite',
'database' => __DIR__.'//database/proction.sqlite',
'prefix' => '',
),
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
'meinv' => array( //这里就是上面例子里的默认连接数据库名,实际上是 mysql 数据库
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
'pgsql' => array(
'driver' => 'pgsql',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
),
'sqlsrv' => array(
'driver' => 'sqlsrv',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'prefix' => '',
),
),
);
?>
『陆』 Laravel 中表单验证里 unique 在 update 时怎么排除当前记录
$this->validate($request,['验证的表单名称(例如name)'=>'验证规则',],[],['验证的表单名称(例如name)'=>'你想改成的中文(例如姓名)'])
『柒』 Laravel中表单验证里unique在update时怎么排除当前记录
首先确认,后台的用户表,我设计表叫做badmin,每个管理员有用户名(),有昵称(nickname),有邮箱(email),有密码(password)这里玩个花,使用laravel的migration来建立表(实际上可以用不着使用这个工具建立表)1安装好最基本的laravel框架2创建migration文件:./artisanmigrate:makecreate-badmin-table3发现app/database/migration/下面多了一个php文件:2014_10_19_090336_create-badmin-table.php4往up和down里面增加内容;increments('id’);$table->string(‘nickname',100)->unique();$table->string('username',100)->unique();$table->string('email',100)->unique();$table->string('password',64);$table->timestamps();});}/***Reversethemigrations.**@returnvoid*/publicfunctiondown(){Schema::drop('badmin’);}}5配置好local的database,app/config/local/database.phpPDO::FETCH_CLASS,'default'=>'mysql','connections'=>array('mysql'=>array('driver'=>'mysql','host'=>'localhost','database'=>'test','username'=>'yejianfeng','password'=>'123456','charset'=>'utf8','collation'=>'utf8_unicode_ci','prefix'=>'',),),'migrations'=>'migrations',);6创建数据表:./artisanmigrate--env=local这个时候去数据库看,就发现多了一张badmin表,数据结构如下:CREATETABLE——badmin——(——id——int(10)unsignedNOTNULLAUTO_INCREMENT,——nickname——varchar(100)COLLATEutf8_unicode_ciNOTNULL,——username——varchar(100)COLLATEutf8_unicode_ciNOTNULL,——email——varchar(100)COLLATEutf8_unicode_ciNOTNULL,——password——varchar(64)COLLATEutf8_unicode_ciNOTNULL,——created_at——timestampNOTNULLDEFAULT'0000-00-0000:00:00',——updated_at——timestampNOTNULLDEFAULT'0000-00-0000:00:00',PRIMARYKEY(——id——),UNIQUEKEY——badmin_nickname_unique——(——nickname——),UNIQUEKEY——badmin_username_unique——(——username——),UNIQUEKEY——badmin_email_unique——(——email——))ENGINE=InnoDBAUTO_INCREMENT=2DEFAULTCHARSET=utf8COLLATE=utf8_unicode_ci;要问这里为什么多出了create_at和update_at,这是laravel默认为每个表创建的字段,而且在使用Eloquent进行增删改查的时候能自动更新这两个字段7创建个Model:'require|alpha_num|min:2','username'=>'require','email'=>'required|email|unique:users','password'=>'required|alpha_num|between:6,12|confirmed',];}这里必须要implementsUserInterface和RemindableInterface8把model和Auth关联上,修改app/config/auth.php'eloquent',//只有驱动为eloquent的时候才有用'model'=>'Badmin',);这里的driver可以是eloquent或者database,使用eloquent就告诉Auth组件说,用户认证类是Badmin这个类管的。这里的model是有命名空间的,就是说如果你的admin类是\Yejianfeng\Badmin,这里就应该改成‘\Yejianfeng\Badmin'9好了,这个时间其实逻辑部分已经搭建完毕了,你已经可以在controller种使用Auth::attempt(XXX)做权限认证Auth::user()获取登录用户(一个Badmin类)等。10下面要建立一个用户登录页面:11设置路由:'user.login','uses'=>'UserController@getLogin']);Route::get('user/login',['as'=>'login','uses'=>'UserController@getLogin']);Route::post('user/login',['as'=>'login','uses'=>'UserController@postLogin']);//需要登录验证才能操作的接口Route::group(array('before'=>'auth’),function(){Route::get(‘user/logout',['as'=>'logout','uses'=>'UserController@getLogout']);Route::get('user/dashboard',['as'=>'dashboard','uses'=>'UserController@getDashboard']);});12设置controller:Input::get('email’),'password'=>Input::get(‘password’)))){returnRedirect::to(‘user/dashboard’)->with(‘message',’成功登录‘);}else{returnRedirect::to('user/login’)->with(‘message',’用户名密码不正确‘)->withInput();}}//登出publicfunctiongetLogout(){Auth::logout();returnRedirect::to('user/login’);}publicfunctiongetDashboard(){returnView::make(‘user.dashboard’);}//添加新用户操作publicfunctiongetCreate(){returnView::make(‘user.create’);}//添加新用户操作publicfunctionpostCreate(){$validator=Validator::make(Input::all(),User::$rules);if($validator->passes()){$bAdmin=newBadmin();$bAdmin->nickname=Input::get(‘nickname’);$bAdmin->username=Input::get(‘username’);$bAdmin->email=Input::get(‘email’);$user->password=Hash::make(Input::get(‘password’));$user->save();Response::json(null);}else{Response::json(['message'=>‘注册失败'],410);}}}13设置下filter,app/filter.phpRoute::filter('auth',function(){if(Auth::guest()){if(Request::ajax()){returnResponse::make('Unauthorized',401);}else{returnRedirect::guest('/’);}}});将这里认证失败后的地址转到/路径14设置views/user/login.blade.php
『捌』 laravel中post表单token是怎么处理的
token是底层一个类判断是不是本域名下提交的,如果是可以提交,不是就抛出异常,用来防止跨站攻击
『玖』 怎么用laravel写一个表单
PRSDBLOGAffectedRowCount @PackageType,1350,@@RowCount
while @@rowcount>1
delete
from temp
OUTPUT deleted.*
INTO temp_deleted
WHERE OperateTime > @CurrentDate
exec PRSDBLOGAffectedRowCount
set rowcount 0
『拾』 Laravel用ajax提交这个表单,控制器code应该怎么写
这是一个头像上传的例子
//前台视图:
//在head里加上_token
<meta name="_token" content="{{ csrf_token() }}"/>
$.ajax({
url:'head_portrait'
,
data:{src:src},
type:'GET',
headers:{'X-CSRF-TOKEN':$('meta[name="_token"]').attr('content')},
success:function(data){
//console.log(data);
id.text('上传头像成功');
console.log(data);
//后台控制器:
//个人资料头像保存
publicfunctionhead_portrait(Request$request){
$uid=session()->get('huser_id');
$res=DB::table('userinfo')->where('uid',$uid)->count();
if($res&&!empty($request->input('src'))){
$ress=DB::table('userinfo')->where('uid',$uid)->update(['uid'=>$uid,'head_portrait'=>$request->input('src')]);
}else{
$ress=DB::table('userinfo')->where('uid',$uid)->insert(['uid'=>$uid,'head_portrait'=>$request->input('src')]);
}
if($ress){echo1;}else{echo0;}
}
},
error:function(){
id.text('上传头像失败');
},
async:false
})