【发布时间】:2023-03-19 08:36:01
【问题描述】:
我在 Laravel 工作,我有一个模型组,我有验证规则。我试图拥有一个唯一的 name_group 但仅限于给定的年份。例如,如果我将.$this->year_groups 替换为 2016,则下面的代码可以完美运行。但是,当我尝试通过连接.this->year_groups 添加要创建的组的实际年份时,出现语法错误:
Symfony\Component\Debug\Exception\FatalErrorException 语法错误,意外'.',期待')'
我看过很多例子,他们(似乎)是这样写的,我就是找不到哪里错了。我在想也许这与它在数组中有关...?
任何帮助将不胜感激!
型号:
<?php
use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;
class Group extends Eloquent implements UserInterface,RemindableInterface
{
use UserTrait, RemindableTrait;
protected $table = 'groups';
protected $primaryKey = "id_groups";
protected $fillable = array('name_groups','year_groups','grados_id_grados');
//The error is in the following $rules
public static $rules = array(
'year_groups'=> 'required',
'name_groups'=> 'required|unique:groups,name_groups,NULL, id_groups,year_groups,' . $this->year_groups,
'grados_id_grados' => 'required'
);
public function grado()
{
return $this->belongsTo('Grado','grados_id_grados');
}
public function students()
{
return $this->belongsToMany('Student','group_student','id_group','id_student')->withTimestamps();
}
public function teachers()
{
return $this->belongsToMany('Teacher','group_subject_teacher','id_group','id_teacher')->withPivot('id_subject','year_groups')->withTimestamps();
}
}
在控制器中,我从 store 方法调用验证:
public function store()
{
$input = Input::all();
$validation = Validator::make($input, Group::$rules);
if($validation->passes()){
$group = new Group;
$group->name_groups = Input::get('name_groups');
$group->year_groups = Input::get('year_groups');
$group->grados_id_grados = Input::get('grados_id_grados');
$group->save();
}
}
【问题讨论】:
-
在您通过验证时尝试 dd($this) 以查看它是什么。阅读您的问题,我不确定您的规则是否在您的控制器、模型或请求中。