数据验证
1、 通过$this->validate
来验证
//验证数据
$this->validate(request(),[
'title' =>'required | string | max:100 | min:4',
'content' => 'required | string | min:10 ',
]);
2、 在模板中 遍历 $errors
@if(count($errors)>0)
<div class="alert alert-danger" role="alert">
@foreach($errors->all() as $error)
<li>{{$error}}</li>
@endforeach
</div>
@endif
3、将验证提示的英文自定义为中文
- 方法一:
//验证数据
$this->validate(request(),[
'title' =>'required | string | max:100 | min:4',
'content' => 'required | string | min:10 ',
],[
'title.min'=>'文章标题过短',
'content.min'=>'内容要超过10个字符',
]);
- 方法二:在
resources/lang/
新建zh
文件夹;把en里面的文件复制一份;把validation.php
里面的英文改为中文
https://gist.github.com/chareice/094a855998401c8b1fb8
安装 Yaml支持
http://symfony.com/doc/current/components/yaml.html
composer require symfony/yaml
在
config
的app.php
中修改本地化用的语言包
'locale' => 'zh',
- 提前表单的三个必须的步骤
1、验证
2、逻辑(如:添加数据库等)
3、渲染(跳转)
把textarea变成富文本编辑器
- 加载编辑器后的,渲染html的写法 :
{!! !!}
//模板中。。。解析html 并指定长度截取字符的写法,
{!! str_limit($post['content'],100,'..more..') !!}
图片上传
1、在laravel中建议在头部分加上meta 标签里面生成csrf_token
<meta name="csrf-token" content="{{csrf_token()}}">
2、基于wangEditor中的自定义js 请求头 中获取token
var editor = new wangEditor('content');
editor.config.uploadImgUrl = '/posts/image/upload';
// 设置 headers(举例)
editor.config.uploadHeaders = {
'X-CSRF-TOKEN' : $('meta[name="csrf-token"]').attr('content')
};
editor.create();
web.php
中设置路由
//图片上传
Route::post('/posts/image/upload','\App\Http\Controllers\PostController@imageUpload');
测试打印
dd(request()->all());
*上传文件配置
1、修改config/filesystems.php
中的 default
中的local
驱动 改为public
2、运行php artisan storage:link
来修改上传图片保存的图径
- 保存文件
1、确保开启php的php_fileinfo扩展 (获取文件MiME,编码等信息)
2、控制器代码如下:
//图片上传 :: 注入 Request对象
public function imageUpload(Request $request){
$path = $request -> file('wangEditorH5File')->storePublicly(md5(time()));
return asset('storage/'.$path);
// dd(request()->all());
}