Home » Laravel拾零

Laravel拾零

建表

php artisan make:migration create_xxx_table --create="xxx" //创建xxx表的migration文件,之后在里边定义字段
php artisan migrate //执行迁移(创建)

几个必备ServiceProvider

#IDE助手
"barryvdh/laravel-ide-helper": "^2.3",
Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
php artisan ide-helper:generate

#翻译
"caouecs/laravel-lang": "~3.0",
手工复制相应的语言包到resource/lang/

#debugbar
"barryvdh/laravel-debugbar": "^2.4",
Barryvdh\Debugbar\ServiceProvider::class,

表单请求

表单请求,主要是用来做表单验证。对于简单验证,在”php artisan make:request ForumRequest”创建的请求类中的rules()方法返回数组即可。若不能满足,新建一个validator()方法来自定义复杂验证对象。一个常见的例子如下:

public function validator()
{
    $v = \Validator::make(\Input::all(), [
        'name' => 'required|max:20',
        'slug' => [
            'required', 
            'regex:/^[\w-]+$/', 
            Rule::unique('forums')->ignore(\Route::current()->parameter('forum')),
        ],
        'description' => 'nullable|max:200',
        'display_order' => 'nullable|numeric',
    ]);
    $v->sometimes('pid', 'nullable|numeric|exists:forums', function($input) {
        return $input->pid > 0;
    });
    
    return $v;
}

以上验证对象规定了以下规则:

  • name,必须非空,最大长度20字符
  • slug,必须非空,正则满足/^[\w-]$/,也即只能是数字母下划线中划线,且在forums表中唯一(通过ignore()在更新时排除主键,注意获取路由中资源ID的方法)
  • description,可选,不为空时最大长度200(nullable表示不传递该字段也可以,传递了值为空也可以。若用sometimes则是字段存在则验证,不存在不验证,验证时候非空不可以)
  • display_order,可选,不为空时为数值型
  • pid,当其值大于0时规则才起效,起效后规则是:可选,数值,在forums表中存在

ss