У меня есть приложение Laravel 4 с базой данных списков, которые я хочу проверять каждые 30 дней.Процесс повторной проверки является довольно сложным и перенаправляется на различные блейды в зависимости от результата.До сих пор я нажимал на каждую из них вручную для повторной проверки и хочу создать пакетную функцию для проверки всех.
Вот моя рабочая функция повторной проверки (упрощенно) с новой функцией batchValidate:
public function revalidate($id=null,$batch=null)
{
$citation = Citation::findOrFail($id);
// Check a bunch of stuff
if( X fails){
return View::make('citations.manualRevalidateA');
}
if( Y fails){
return View::make('citations.manualRevalidateB');
}
if( Z fails){
return View::make('citations.manualRevalidateC');
}
if(!empty($batch) && $batch=='batch'){
return array(
'nap_status'=>$napcheck[0],
'nap_details'=>$napcheck[1],
'cache'=>$napcheck[2],
);
return Redirect::to('citations/')
->with('flash-success','Validation successful');
}
public function batchValidate()
{
$citations = Citation::getAll();
foreach ($citations as $citation) {
$data=$this->revalidate($citation->id,'batch');
// Store the result
}
return Redirect::to('citations/')
->with('flash-success','Batch validation has completed successfully.);
}
Если revalidate () обнаруживает ошибку, я хочу, чтобы цикл остановился, и управление перешло к одному из блейдов manualRevalidate.Но мой синтаксис
return View::make('citations.manualRevalidateC');
заставляет его возвращаться к функции batchValidate со всеми сжатыми данными для представления вместо требуемого массива результатов.
Я уверен, что этопростая проблема с синтаксисом Laravel, но как идти, вызывая блейды manualRevalidate без возврата к моей пакетной функции?