dongwen2162 2016-07-17 04:25
浏览 37
已采纳

laravel语法错误意外'。' 在模型中尝试连接字符串

I am working in Laravel, and I have a model Group where I have rules for validation. I am attempting to have a unique name_group but only for the given year. The code below works perfectly if I replace .$this->year_groups with 2016 for example. But when I try to add the actual year of the group to be created by concatenating .this->year_groups, I get a syntax error:

Symfony \ Component \ Debug \ Exception \ FatalErrorException syntax error, unexpected '.', expecting ')'

I have looked at many examples and they (seem) to be written this way, and I just can't find what is wrong. I am thinking perhaps it has something to do that this is in an array...?

Any help would be greatly appreciated!!

Model:

<?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();
  }  
}

In the Controller I call validation from the store method:

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();
    }

 }
  • 写回答

2条回答 默认 最新

  • dongxiegao3071 2016-07-17 05:39
    关注

    Looking your code, it seems $rules is variable or property of class. The way you are assigning values to property are wrong, so it is throwing error. Look below code and arrange your code accordingly:-

    class anyClass {
     private $year_groups = "2016";     
     public $rules = [];
     public function __construct(){
        $this->rules = array(
            'year_groups'=> 'required',
            'name_groups'=> 'required|unique:groups,name_groups,NULL,    id_groups,year_groups,'.$this->year_groups,
            'grados_id_grados' => 'required'
           );
    
     }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。