1 refresh
的作用是重置数据库并重新运行所有迁移。(清空数据库所有表和记录,重新生成迁移)。
php artisan migrate:refresh
2 在表单提交的时候,失败会重新刷新页面,所有数据都会丢失,把 input 的 value 设置为 {{ old('name') }} 即可在验证失败的时候刷新页面数据保存还在。
<input type="text" name="name" class="form-control" value="{{ old('name') }}">
3 laravel的验证:
存在性验证 'name' => 'required' required
来验证用户名是否为空。
长度验证 'name' => 'min:3|max:50' min
和 max
来限制用户名所填写的最小长度和最大长度。
格式验证 'email' => 'email' 只需简单的使用 email 便能够完成邮箱格式的验证。
唯一性验证 'email' => 'unique:users' 我们还需要验证用户使用的注册邮箱是否已被它人使用,这时我们可以使用唯一性验证,这里是针对于数据表 users
做验证。
密码匹配验证 'password' => 'confirmed' 如果我们需要确保用户在输入密码时,保证两次输入的密码一致。这时候则可以使用 confirmed
来进行密码匹配验证。
4 laravel验证错误提示中文包安装,github地址:https://github.com/overtrue/laravel-lang
composer require "overtrue/laravel-lang:~3.0"
在config/app.php配置文件中修改
: 'locale' => 'zh-CN'
5 通过控制器向视图携带个信息
创建个session并使用flash方法携带一条信息, success为会话的建,后面的内容为会话的值
session()->flash('success', '欢迎,您将在这里开启一段新的旅程~');
在试图通过
session()->get(’键名‘) 来取出信息;
danger
, warning
, success
, info
这四个键名在 Bootstrap 分别具有不同样式展现效果,因此后面我们将使用这几个键名作为消息提示的专有设定。session()->flash('success', '欢迎,您将在这里开启一段新的旅程~');
创建个文件存入以下代码,在需要的试图中include上,这样子,在控制器中flash带上信息,视图就能获取到信息。
@foreach (['danger', 'warning', 'success', 'info'] as $msg) @if(session()->has($msg)) <div class="flash-message"> <p class="alert alert-{{ $msg }}"> {{ session()->get($msg) }} </p> </div> @endif @endforeach
6. 可以用变量对验证进行存储,存储的值为提交的值,这样就不用$request->all() 在去获取用户输入的值了
$userInfo = $this->validate($request,[
'email' => 'required|email',
'password' => 'required'
]);
dd($userInfo);
array:2 [▼
"email" => "esaiting@outlook.com"
"password" => "123456"
]
7. 时间中文化显示:在 Laravel 中,时间戳
created_at
和 updated_at
作为模型属性被调用时,都会自动转换为 Carbon
对象,下图我们使用 Laravel 自带的 dd()
辅助函数验证一下: dd( $user->created_at ) 显示结果为 date: " 2011-3-12 12:22:32.0000 " Carbon 是 PHP 知名的 DateTime 操作扩展,Laravel 将其默认集成到了框架中。
diffForHumans
是 Carbon
对象提供的方法,默认情况是英文的,如果要使用中文时间提示,则需要对 Carbon 进行本地化设置。对 Carbon 进行本地化的设置很简单,只在 AppServiceProvider
中调用 Carbon 的 setLocale
方法即可,AppServiceProvider
是框架的核心,在 Laravel 启动时,会最先加载该文件。app/Providers/AppServiceProvider.php: public function boot() { // CarbonCarbon::setLocale('zh'); } 这样子,在要显示的地方就可以使用:
$user->created_at->diffForHumans() 这样转化后的时间为中文格式 比如:2小时前
8表单上传图片和文件
为表单添加
enctype="multipart/form-data"
声明了。请记住,在图片或者文件上传时,为表单添加此句声明是必须的。那我们再次修改下: <form action="{{ route('users.update', $user->id) }}" method="POST" accept-charset="UTF-8" enctype="multipart/form-data">