に私はこのような倍数スコープを追加しようとしていた、laravel 5に新しい午前:どのようにDBに複数の範囲を追加する::テーブルlaravel 5.4
$projects = DB::table('projects AS p')->select('p.project_name','c.name_country', 'p.date_project','s.name_status','p.rejected_date')
->join('country AS c','c.id','=','p.id_country')
->join('status AS s','s.id','=','p.id_status')
->where('p.active','=','1');
$projects = $this->scopeCountry($projects , $country);
$projects = $this->scopeStatus($projects , $status);
$projects->get();
return view('search.ajax')->with('projects', $projects);
}
public function scopeCountry($query, $country){
return is_null($country) ? $query : $query->where('p.id_country','=',$country);
}
public function scopeStatus($query, $status){
return is_null($status) ? $query : $query->where('p.id_status','=',$status);
}
}
それは私にこのエラーを与えた: ErrorExceptionで26864233b0cd26a1055b66c2645628be451523fd.phpライン4:未定義のプロパティ:\データベース\のMySqlConnectionにを照らす:: $のPROJECT_NAMEを(ビュー:/home/vagrant/Code/projects/resources/views/search/ajax.blade.php)私は気づい
このように変更すると、このエラーは表示されません。
//$projects = $this->scopeStatus($status);
//$projects->get();
とで、その後私は、get()関数を追加:私は1つのスコープにクエリを追加しないと、私はIS_NULL($国)を使用する理由は、理由の場合である
public function scopeCountry($query, $country){
return is_null($country) ? $query->get() : $query->where('p.id_country','=',$country)->get();
}
これらの変数($国、$ステータス)がヌル本体のみのクエリを実行すべきだった。
$projects = DB::table('projects AS p')->select('p.project_name','c.name_country', 'p.date_project','s.name_status','p.rejected_date')
->join('country AS c','c.id','=','p.id_country')
->join('status AS s','s.id','=','p.id_status')
->where('p.active','=','1');
そしてまた、私は他の分野と同様のスコープを追加する必要があり、多分それを行うための別の方法があり、私はないです確かに。ありがとうございました。