查看“系统服务”的源代码
←
系统服务
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看并复制此页面的源代码:
==事件== Laravel事件提供了简单的侦听器实现,允许你订阅和监听事件,事件类通常被保存在app/Events目录下,而它们的侦听器被保存在app/Listeners目录下。 ==错误与日志== <source lang='php'> //.env APP_DEBUG=true // bootstrap/app.php $app->withFacades(); //引用Log use Log; // 8个日志级别 Log::emergency($error); Log::alert($error); Log::critical($error); Log::error($error); Log::warning($error); Log::notice($error); Log::info($error); Log::debug($error); </source> ==测试== <source lang='php'> public function testTom() { $response = $this->call('get', '/userInfo'); $result = json_decode($response->original); $this->assertEquals( 'Tom', $result->name ); } </source> ==缓存== <source lang='php'> use Cache; if (Cache::has('key')) { $coupon_total = Cache::get('key'); } else { $rs = Coupon_api::instance()->total(); if ($rs['status']) { $coupon_total = $rs['data']['total_amount']; } Cache::put('key', $coupon_total, 5); //5 minutes } </source> ==分页== ==session== ;session使用 <source lang='php'> use Illuminate\Http\Request; function blade(Request $request) { //赋值 session(['name'=> 'Tom']); $request->session()->put('name', 'Tom'); $request->session()->push('students', 'Tom'); //取值 $name = session('name'); $request->session()->get('students'); } </source> ;Session store not set on request. <source lang='php'> // Kernel.php添加中间件 protected $middleware = [ //... \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, ]; </source> ==表单验证== ===一个简单的例子=== 开始照着手册上的例子作练习,发现页面显示不了,猜想是不是代码没写全,补充了其它代码,也不行,后来发现页面不显示,浏览器报两种错误: * 500:我糊乱把ajax验证的代码抄过来用,代码执行错误。 * too many redirects:validate验证不过,会直接返回一个reponse,表单和后台用一个控制器,就反复不断循环跳转到自己。 花了很久时间才终于弄明白,原来是我验证流程没弄明白,正确的代码也执行不了。 <source lang='php'> function input() { return view('input'); } function store(Request $request) { $request->flash(); $this->validate($request, [ 'name' => 'required|max:5', 'old' => 'required', ], [ 'name.required' => '请填写姓名', 'name.max' => '姓名不能超过:max个字符', 'old.required' => '我们需要知道你的年龄', ]); return 'validation is OK!'; } </source> ===注意事项=== # 默认情况下,Laravel的基底控制器类使用了ValidatesRequests trait,其提供了一种便利的方法来使用各种强大的验证规则验证传入的HTTP请求。在控制器中,用$this->validate()来使用验证功能。 # $this->validate()如果验证失败,则会抛出异常错误消息并自动生成一个对应的响应。 # 所有的验证错误会被自动闪存至session。 # $errors变量在每次请求的所有视图中都可以被使用。 ===AJAX验证=== <source lang='php'> use Validator; function store(Request $request) { $validator = Validator::make($request->all(), [ 'name' => 'required|max:5', 'old' => 'required', ]); return $validator->errors(); } </source> ===手动创建验证程序=== 如果你不想要使用ValidatesRequests trait的validate方法,你可以手动创建一个validator实例并通过Validator::make方法在facade生成一个新的validator实例。 <source lang='php'> function store(Request $request) { $validator = Validator::make($request->all(), [ 'name' => 'required|max:5', 'old' => 'required', ]); if ($validator->fails()) { return redirect('/input') ->withErrors($validator) ->withInput(); } return 'validation is OK!'; } </source> ===表单请求类=== 怎样才能较好的运行验证规则呢? 为了不使验证逻辑而把控制器弄得一团糟,也为了能应付更复杂的验证情境,你可能会想要创建一个form request,然后在在控制器方法中利用类型提示传入请求,这样传入的请求会在控制器方法被调用前进行验证。 ;1、生成表单请求类 <source lang='bash'> php artisan make:request StoreBlogPostRequest </source> ;2、使用表单请求类 <source lang='php'> public function store(StoreBlogPostRequest $request){ // 传入的请求是有效的... } </source> ;3、表单请求类 <source lang='php'> //如果你打算在应用程序的其它部分处理授权逻辑,只需从authorize方法返回true。 public function authorize(){ $commentId = $this->route('comment'); return Comment::where('id', $commentId) ->where('user_id', Auth::id())->exists(); } //验证规则 public function rules(){ return [ 'title' => 'required|unique:posts|max:255', 'body' => 'required', ]; } //错误消息 public function messages(){ return [ 'title.required' => '标题是必填的', 'body.required' => '消息是必填的', ]; } </source> ===复杂的条件验证=== 如果年纪大于100岁,一定要写长寿原因。这种验证条件,只能在控制器中验证,不能在表单请求类中写rules来实现。 <source lang='php'> function store(Request $request) { $validator = Validator::make($request->all(), [ 'name' => 'required|max:5', 'old' => 'required', ], [ 'name.required' => '请填写姓名', 'name.max' => '姓名不能超过:max个字符', 'old.required' => '我们需要知道你的年龄', 'reason.required' => '你为何如此长寿?' ]); $validator->sometimes(['reason'], 'required', function ($input) { return $input->old >= 100; }); if ($validator->fails()) { return redirect('/input') ->withErrors($validator) ->withInput(); } return 'validation is OK!'; } </source>
返回
系统服务
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息