Laravel学习笔记
常用函数:
- compact(‘变量1’,’变量2’)
类似于es6 的简写,会生成类似于['name' => $name]的键值对
- dd(变量)
程序运行到此处终止并输出变量的值
- Tinker 助手
1 | php artisan tinker |
1 | >>> App\Model::pluck('body'); |
request()->all()request(['title', 'body'])
获取所有的post数据
只获取title和body
常见问题
- 删除文件
删除完migration文件之后都要清除Composer中自动加载的记录,刷新自动加载记录
1 | $ composer dump-autoload |
技巧提点
- 进一步封装查询语句
Model.php
1 | public function scopeIncompleted($query, $val) |
- Model与路由的绑定
1 | Route::get('/tasks/{thetask}', 'TasksController@show'); |
- 命名规则
controller => PostsController
Model => Post
migration => create_posts_table
- RESTFul
1 | $ php artisan make:Controller TasksController -r |
创建一个resourceful controller
- 文件路径更改
与其相关的命名空间,包括文件本身的命名空间都需要进行修改!
- 快速查看所有的路由
1 | $ php artisan route:list |
- 重定向返回至上一次请求尝试访问的页面
1 | return redirect()->intended(route('users.show', [Auth::user()])); |
关于Blade
@yield('title', 'Sample')
声明title变量及其默认值
1 | @yield('content') |
@yield 用于定义
@section 用于插入值
@include('shared.user_info', ['user' => $user])
给局部视图传参数
old('name名称')
辅助函数显示旧的输入数据
Model
- 每一个Model内部都有三个属性
$table $fillable $hidden
指明交互的数据表名称,能进行更新的字段,JSON形式显示时隐藏的字段
Controller
- 每一个controller中都有一个
validator,可以用来验证字段
Session 会话
- 创建会话实例
session()->flash('success', '欢迎,您将在这里开启一段新的旅程~');
flash方法使得会话缓存只在下一次请求中有效,第一个参数是键名,第二个参数是键值
- 访问会话实例
session()->get('success')
Auth 认证系统
Auth::attempt()尝试登陆
Auth::user()当前登录实例
Auth::check() 是否已经登录
API:
bool attempt(array $credentials = array(), bool $remember = false)
第二个参数用来开发记住密码
中间件的使用
- 在用户控制器构造方法中应用中间件
1 | public function __construct() |
Authenticate.php中进行重定向
1 | public function handle($request, Closure $next) |
授权策略
已登录的用户之间的权限控制
- 创建Policy文件并创建用户比对方法
1 | public function update(User $currentUser, User $user) |
- 在
AuthServiceProvider中进行授权策略的配置,将用户模型指定授权策略
1 | protected $policies = [ |
- 将查询时返回的User实例发送给授权策略进行比较
1 | $user = User::findOrFail($id); |
