laravel笔记(laravist 笔摘)

来源:互联网 发布:淘宝出售二手闲置 编辑:程序博客网 时间:2024/05/29 07:06

Model

  • 获取最新文章列表
$articles = Article::latest()->get();
  • 设定常用方法
// App\Article::classpublic function scopePublished($query){    $query->where('published_at', '<=', Carbon::now());}// App\Http\ArticleControllerpublic function index(){    // 获取已发布的文章(还未发布的文章不显示)    $articles = Article::latest()->published()->get();}
  • published_at 设置为 Carbon 时间处理
protected dates = ['published_at'];
  • 数据存储前处理 setAttribute
// 将时间处理为Carbon格式public function setPublishedAttribute($date){    $this->attributes['published_at'] = Carbon::createFromFormat('Y-m-d', $date);}

表单验证

  • php artisan make:requestvalidate

Form-Model-Binding

// get Article$article = Article::findOrFail($id);// bind mdodel{!! Form::model($articles,['method' => 'patch']) ... !!}...

laravel 5.2 新特性

  • 路由绑定
// 1 router.php 文件中绑定  eg: user/1Route::get('/user/{user}', function(\App\User $user) {        return $user;})// 2 在 appServiceProvider.php public function boot(Router $router){    parent::boot($router);    // 路由中可以使用username来获取用户信息 eg: /user/rovast    \Router::bind('username', function($username) {        return User::where('username', $username)->firstOrFail();    });}
  • 限定访问次数
// http 工具 httpiemiddleware('throttle'); // 默认一分钟不能超过60次middleware('throttle:3'); // 一分钟不能超过3次

laravel 5.4 新特性

  • 创建控制器时绑定 model
php artisan make:controller PostController --model=Post

表单运用实例

管理员admin在编辑自己信息时,只能是自己编辑自己的,且邮箱唯一(如果尝试输入系统中已存在的非自己的邮箱,则不能通过验证)
php artisan make:request UpdateAdmin

<?phpnamespace App\Http\Requests;use Auth;use Illuminate\Foundation\Http\FormRequest;use Illuminate\Validation\Rule;class UpdateAdmin extends FormRequest{    /**     * Determine if the user is authorized to make this request.     *     * @return bool     */    public function authorize()    {        return $this->route('admin.id') === Auth::guard('admin')->id();    }    /**     * Get the validation rules that apply to the request.     *     * @return array     */    public function rules()    {        return [            'name'     => 'required|max:10',            'email'    => ['required', 'email', Rule::unique('admins')->ignore($this->route('admin.id'))],            'password' => 'string'        ];    }}
原创粉丝点击