"기술"의 "서비스"를 연도 및 월별로 필터링하려고합니다.이를 위해 "기술"을 찾을 수있는 ID를 얻습니다. 이 모든 작업은 중첩 쿼리로 수행됩니다. 내 문제는 laravel을 사용하여 연도와 나방별로 필터링하는 방법을 모른다는 것입니다.
제어 장치
public function doFilter(){
$servicios = Tecnico::find(Input::get('id'))
->servicios //services
->where('timestamp', Input::get('ano').'-'.Input::get('mes'));// ano=year, mes=moth
return View::make('detalletecnico', array('servicios' => $servicios, 'id' => Input::get('id')));
}
TechnicalModel
class Tecnico extends Eloquent{
protected $table = 'Tecnico';
protected $primaryKey = 'idTecnico';
protected $hidden = array('Contrasena');
protected $fillable = array(
'idTecnico',
'Nombre',
'Apellido',
'Telefono',
'Contrasena',
'Foto',
);
public function servicios(){
return $this->belongsToMany('Servicio', 'Servicio_Tecnico', 'Tecnico_idTecnico', 'Servicio_idServicio');
}
}
ServiceModel
class Servicio extends Eloquent{
protected $table = 'Servicio';
protected $primaryKey = 'idServicio';
protected $fillable = array(
'Direccion',
'RutaPDF',
'Completado',
'timestamp'
);
public function materialUsado(){
return $this->hasMany('Material_Usado', 'idMaterial_Usado');
}
public function tecnicos(){
return $this->belongsToMany('Tecnico', 'Servicio_Tecnico', 'Servicio_idServicio', 'Tecnico_idTecnico');
}
}
노선
Route::get('tecnico/detalle/filter', array('uses' => 'TecnicoController@doFilter'));
잎
{{Form::open(array('url' => 'tecnico/detalle/filter'))}}
{{Form::select('mes', array('Enero',
'Febrero',
'Marzo',
'Abril',
'Mayo',
'Junio',
'Julio',
'Agosto',
'Septiembre',
'Octubre',
'Noviembre',
'Diciembre'), array('class' => 'input-xlarge'))}}
{{Form::select('ano', array(date('Y'),
'2013',
'2012'
), array('class' => 'input-xlarge'))}}
{{ Form::hidden('id', $id) }}
{{ Form::submit('Filtrar', array('class' => 'btn btn-primary')) }}
{{Form::close()}}
MySql에서 원시 wheres 및 YEAR 및 MONTH 함수를 사용하려고 할 수 있습니다.
$servicios = Tecnico::find(Input::get('id'))
->servicios()
->whereRaw('YEAR(timestamp) = ?', array(Input::get('ano')))
->whereRaw('MONTH(timestamp) = ?', array(Input::get('mes')))
->get();
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다