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条)

报告相同问题?

悬赏问题

  • ¥60 pb数据库修改或者求完整pb库存系统,需为pb自带数据库
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路