Php Laravel文件验证-如何修复“;变量将立即被重写“0”;
我在拉拉维尔做项目。我将此代码设置为验证文件大小和格式:Php Laravel文件验证-如何修复“;变量将立即被重写“0”;,php,laravel,Php,Laravel,我在拉拉维尔做项目。我将此代码设置为验证文件大小和格式: class KnowledgeBaseMovieRequest extends FormRequest { public function authorize() { return true; } public function rules() { $id = $this->route('knowledge_base_movie'); $r
class KnowledgeBaseMovieRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
$id = $this->route('knowledge_base_movie');
$rules = [
'name' => ['required', 'max:255'],
];
if (empty($id)) {
$rules['movie'] = ['file', 'required', 'max:200000'];
$rules['movie'] = ['file', 'max:20000', new Mp4File];
}
return $rules;
}
}
class Mp4File implements Rule {
const MIMES = [
'video/mp4'
];
const EXT = 'mp4';
public function passes($attribute, $file) {
return in_array($file->getClientMimeType(), self::MIMES) && $file->getClientOriginalExtension() === self::EXT;
}
public function message() {
return ':attribute musi być plikiem .mp4.';
}
}
我需要在最大大小200000文件和格式mp4
在tjis行中:
$rules['movie'] = ['file', 'required', 'max:200000'];
$rules['movie'] = ['file', 'max:20000', new Mp4File];
我有“$rules['movie']立即被覆盖”
如何修复它?只需将所有规则组合在一个时间变量中:
$rules['movie'] = ['file', 'required', 'max:200000', new Mp4File];
为什么要为同一索引设置两行?为什么要覆盖下一行中定义的变量?如何在一行中写入这两个条件?;)