我有个问题,
我希望我的路线/浏览器同时显示一些元素并通过一个书面函数检查一个条件,这是两个独立的函数,但是我希望它们在一条路线上运行,甚至可能吗?
web.php
Route::get('/browse',[PlantsController::class, 'browse'])->name('browse');
Route::get('check',[PlantsController::class, 'checkForWatering'])->name('check');
我试图做这样的事情:
public function browse()
{
$this->checkForWatering();
$this->displayPlants();
}
但是结果是空白的页面。
这是我的功能:
public function checkForWatering()
{
$all = DB::table('plants')
->select('*')
->get();
foreach ($all as $result)
{
$now = Carbon::now();
$nextWatering = (new Carbon ($result->watered_at))
->addDays($result->watering_frequency);
$daysPast = $nextWatering->diffInDays($now);
$query = DB::table('plants')
->where('watering_frequency', '>=', $daysPast)
->get();
$query->isEmpty() ? $result = true : $result = false;
return redirect()->route('browse')->with('result',$result);
}
}
public function displayPlants(){
$now = new Carbon();
$plants = DB::table('plants')
->where('user_id', '=', auth()->id())
->orderBy('watered_at', 'desc')
->get();
foreach ($plants as $plant)
{
$plant->watered_at = Carbon::parse($plant->watered_at)
->diffForHumans();
$plant->fertilized_at = Carbon::parse($plant->fertilized_at)
->diffForHumans();
}
return view('browse')->with('plants',$plants);
}
您不返回视图,将浏览更改为:
public function browse() {
$response = $this->checkForWatering();
if (!empty($response)) {
// If checkForWatering returned a response object, return it
return $response;
}
return $this->displayPlants();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句