У меня есть две модели:
Class Survey{
public function steps(){
return $this->hasMany( Step::class );
}
}
Class Step{
public function survey(){
return $this->belongsTo( Survey::class );
}
public function isFinished( Survey $survey ){
// Check some things
return ( /* Chech if that step of the survey is finished */ ) ? true : false;
}
}
В моем контроллере я хочу получить все опросы, которые завершили определенный шаг.
public function getFinished( Step $step ){
$finished = collect();
$surveys = Survey::all();
foreach( $surveys as $survey ){
if( $step->isFinished( $survey ) ){
$finished->push( $survey );
}
}
return $finished;
}
Я знаю, что это неэффективный способ сделать это.Я хотел бы сделать это из модели со статической функцией, чтобы я мог сделать что-то вроде:
public function getFinished( Step $step ){
return Survey::getFinished( $step );
}