L01 Laravel 教程 随笔

1.关于本教程的开发环境问题
个人使用的phpstudy配置简易laravel环境,通过在站点域名管理设置新建站点,在host中注册自定义域名的方法实现运行laravel框架。

L01 Laravel 教程

L01 Laravel 教程

  1. artisan tinker
    在命令行中直接进行数据库操作,在Windows CMD中 与网站根目录键入 artisan tinker 进入此模式,exit退出此模式。
  2. 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();

  1. 输入框自动填充旧数据

    {{ 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'  />
  1. 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))

{{ session()->get($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 协议》,转载必须注明作者和本文链接
lanffff
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!