我是PHP的新手,所以现在我需要使用静态变量验证模型。
这就是我所拥有的
class Setting extends Model {
protected $table = 'settings';
public static $rules = [
'skey' => 'required|unique:table,id,' . Route::input('settings')
];
}
它会抛出以下错误:语法错误,意外'。',期待']'
好的,我明白不能用于声明变量。
现在,这是我的问题:
答案 0 :(得分:1)
你不能像Luis所说的那样这样做。
我认为你正在使用L5。更好的做法是使用Request
类。
<?php
namespace App\Http\Requests;
class SettingRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'skey' => 'required|unique:table,id,' .$this->input('settings')
];
}
}
之后,您可以使用SettingRequest
类作为控制器中的方法参数,如下所示:
public function update(SettingRequest $request) {}
public function create(SettingRequest $request) {}
答案 1 :(得分:0)
你不能在那种情况下这样做。尝试在方法中执行此操作:
public static function getRules()
{
return [
'skey' => 'required|unique:table,id,' . Route::input('settings')
];
}