L01 Laravel 教程 随笔
1.关于本教程的开发环境问题
个人使用的phpstudy配置简易laravel环境,通过在站点域名管理设置新建站点,在host中注册自定义域名的方法实现运行laravel框架。
- artisan tinker
在命令行中直接进行数据库操作,在Windows CMD中 与网站根目录键入 artisan tinker 进入此模式,exit退出此模式。 -
resource 路由方法
Route::resource('users', 'UsersController');
控制器写法
public function show(User $user) { return view('users.show', compact('user')); }
User 对应
{user}
:Route::get('/users/{user}', 'UsersController@show')->name('users.show');
$user表示传递的ID值
compact的作用是关联$user,把其当做参数传入视图,将视图与参数进行绑定。
HTTP 请求 | URL | 动作 | 作用 |
---|---|---|---|
GET | /users | UsersController@index | 显示所有用户列表的页面 |
GET | /users/{user} | UsersController@show | 显示用户个人信息的页面 |
GET | /users/create | UsersController@create | 创建用户的页面 |
POST | /users | UsersController@store | 创建用户 |
GET | /users/{user}/edit | UsersController@edit | 编辑用户个人资料的页面 |
PATCH | /users/{user} | UsersController@update | 更新用户 |
DELETE | /users/{user} | UsersController@destroy | 删除用户 |
4.gravatar 获取头像方法
模型方法
`public function gravatar($size = '100')
{
$hash = md5(strtolower(trim($this->attributes['email'])));
return "http://www.gravatar.com/avatar/$hash?s=$size";
}`
1. 为 gravatar 方法传递的参数 `size` 指定了默认值 100;
2. 通过 `$this->attributes['email']` 获取到用户的邮箱;
3. 使用 `trim` 方法剔除邮箱的前后空白内容;
4. 用 `strtolower` 方法将邮箱转换为小写;
5. 将小写的邮箱使用 md5 方法进行转码;
6. 将转码后的邮箱与链接、尺寸拼接成完整的 URL 并返回;
获取头像$user->gravatar();
-
输入框自动填充旧数据
{{ old('name') }}
6.validate验证方法
这时我们可以使用 `required` 来验证用户名是否为空。
`'name' => 'required'`
我们还可以使用 `min` 和 `max` 来限制用户名所填写的最小长度和最大长度。
`'name' => 'min:3|max:50'`
email验证
'email' => 'email'
唯一性验证
'email' => 'unique:users'
密码匹配认证
'password' => 'confirmed'
密码:
<input type='password' name='new_password' />
确认密码:
<input type='password' name='new_password_confirmation' />
- validate验证中文提示框
Composer 来安装 laravel-lang。
$ composer require "overtrue/laravel-lang:~3.0"
安装成功后,在 config/app.php 文件中将以下这一行:
Illuminate\Translation\TranslationServiceProvider::class,
替换为:
Overtrue\LaravelLang\TranslationServiceProvider::class,
最后 app.php设置中文。
'locale' => 'zh-CN',
8.session消息框
session()->flash('success', '欢迎,您将在这里开启一段新的旅程~');
通过回馈状态判断
[[[[[[[@foreach](https://learnku.com/users/5651)](https://learnku.com/users/5651)](https://learnku.com/users/5651)](https://learnku.com/users/5651)](https://learnku.com/users/5651)](https://learnku.com/users/5651)](https://learnku.com/users/5651) (['danger', 'warning', 'success', 'info'] as $msg)
@if(session()->has($msg))
@endif
@endforeach
9. method_field 隐藏域
{{ method_field('DELETE') }}
10. remember功能
验证登录 并记住登录状态 最大保存5年
Auth::attempt($credentials, $request->has('remember'))
11.多对多 笔记
模型方法
//我的粉丝 我可以被多人关注
public function followers()
{
return $this->belongsToMany(User::Class, 'followers', 'user_id', 'follower_id');
}
//我的关注 我可以关注多人
public function followings()
{
return $this->belongsToMany(User::Class, 'followers', 'follower_id', 'user_id');
}
控制器方法
//我的关注
public function followings(User $user)
{
$users = $user->followings()->paginate(30);
$title = '关注的人';
return view('user.show_follow', compact('users', 'title'));
}
//我的粉丝
public function followers(User $user)
{
$users = $user->followers()->paginate(30);
$title = '粉丝';
return view('user.show_follow', compact('users', 'title'));
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: