laravel基础
请求
Input类来获取数据
use Illuminate\Support\Facades\Input;
//获取单个字段
$username = Input::get("username", "zhangsan");
dump(Input::all());
//获取指定的字段
dump(Input::only(['username', "password"]));
//黑名单方式获取字段,除了password之外
dump(Input::except(["password"]));
//判断字段中是否有age
dump(Input::has("age"));
Request 获取数据
laravel以一个依赖注入的方式,帮我们实例获取对象
public function login2(Request $request) {
//获取指定字段
$username = $request->get("username", 'null');
//获取所有字段
dump($request->all());
//获取指定范围内字段
dump($request->only(['username', 'password']));
//排除字段
dump($request->except(['age']));
//检测字段
dump($request->has("age"));
}
辅助函数的方式
\request() 方法同$request
响应
设置cookie
laravel框架为了安全,它的cookie是加密的
简单用法cookie($name, $value, $minutes, $path, $domain, $secure, $httpOnly)
response(“设置了cookie”)->cookie(“name”, “value”, 5);
获取cookie
request()->cookie(“cookie_key”);
重定向
redirect()->route(“路由别名”) 或 redirect(route(“路由别名”,[“param” => “value”]))
返回json
return response()->json(['id'=>3, "name"=>"admin"], 200);
返回视图
view(“视图名”) 如 视图路径为 resource/view/test/index.blade.php 则 view(“test.index”)
传入数据
view(“index”, compact(“name1”,“name2”))
表单验证
方式一:
$this->validate()
$input = $this->validate($request, [
'username' => 'required|between:2,4',
//confirmed写在password中
'password' => 'required|confirmed',
'password_confirmation' => 'required',
'email' => 'required|email'
],[
'username.required' => '用户名必须填写',
'email.required' => '邮箱不能为空',
'password.confirmed' => "两次密码不一致"
]);
//错误展示 在 index.blade.php中
@if($errors->any())
<div class="alert alert-danger">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<ul>
@foreach ($errors->all() as $error)
<li>
{{$error}}
</li>
@endforeach
</ul>
</div>
@endif
独立验证方式
$validator = Validator::make($request->all(), [
'username' => 'required|between:2,4',
'password' => 'required|confirmed',
'password_confirmation' => 'required',
'email' => 'required|email'
],[
'username.required' => '用户名必须填写',
'email.required' => '邮箱不能为空',
'password.confirmed' => "两次密码不一致"
]);
if ($validator->fails()) {
return redirect()->back()->withErrors($validator);
}
验证器方式【推荐】
php artisan make:request UserReqest
在HTTP/Request文件夹下生成
将默认的权限验证放开
public function authorize()
{
return true;
}
配置规则与错误提示信息
public function rules()
{
return [
//
'username' => 'required|between:2,4',
'password' => 'required|confirmed',
'password_confirmation' => 'required',
'email' => 'required|email'
];
}
public function messages()
{
return [
'username.required' => '用户名必须填写',
'email.required' => '邮箱不能为空',
'password.confirmed' => "两次密码不一致"
];
}
使用:
在控制器中引入,然后替代原来的Request即可
验证码
- composer require mews/captcha
- config/app.php
在服务提供者中添加此项
‘providers’ => [
Mews\Captcha\CaptchaServiceProvider::class,
]
#同时注册下相应门面:
‘aliases’ => [
‘Captcha’ => Mews\Captcha\Facades\Captcha::class,
]- 发布配置
php artisan vendor:publish- 使用
<img src="{!! captcha_src('mini') !!}}" alt="na"/>
- 验证
public function rules()
{
return [
//
'username' => 'required|between:2,4',
'password' => 'required|confirmed',
'password_confirmation' => 'required',
'code' => 'required|captcha'
];
}