Laravel 验证表单数组

需求:在创建用户的时候,选择用户的角色(可以不选/单选/多选),用户角色是一个包含角色 id 的数组。

表单内容:

<input type="checkbox" name="roles[]" value="{{ $v->id }}"> {{ $v->name }}

自定义 Request rules() 方法:

public function rules()
{
    $rules = [
        'name' => 'required|max:255|unique:users,name',
        'email' => 'required|email|max:255|unique:users,email',
        'password' => 'required|max:255',
        'active' => 'boolean',
        'admin' => 'boolean',
        // 'roles' => 'numeric|exists:roles,id', 错误的方法
    ];
    if ( $this->request->get('roles') )
    {
        foreach( $this->request->get('roles') as $k=>$v )
        {
            $rules['roles.'.$k] = 'numeric|exists:roles,id';
        }
    }
    return $rules;
}

当 role id 不存在报错:The selected roles.0 is invalid.

以上的方法用于 laravel 5.1,在 5.2 中可以直接使用 'roles.*' => 'numeric|exists:roles,id', 来验证。

CI 多国语言

需求

  1. 默认访问与浏览器相同语言的页面
  2. 使用便于 SEO 的链接形式
  • sample.com/ - 默认简体中文
  • sample.com/sc/ - 简体中文
  • sample.com/tc/ - 繁体中文
  • sample.com/en/ - 英语

- 阅读剩余部分 -