Я использовал Laravel помощников во всех своих чертах, предполагая, что вспомогательные функции работают везде.
Но хотя некоторые функции, такие как abort()
, работают, я только что понял, что return redirect()
и return back()
не работают!
Может кто-нибудь объяснить, почему?
После этого я немного не решаюсь доверять Laravel ... Я имею в виду, что если в следующий раз abort(403)
кое-где не работает (потому что я не знаю, какая функция где работает), а кто-то делает то, что им запрещено делать!
Упрощенный пример:
namespace App\Http\Traits;
trait TestTrait{
public function doBack(){
return back();
}
public function doRedirect(){
return redirect()->route('test');
}
public function doAbort(){
abort(403);
}
}
use App\Http\Traits\TestTrait;
class TestController extends Controller{
use TestTrait;
public function testingBack(){
$this->doBack();
}
public function testingRedirect(){
$this->doRedirect();
}
public function testingAbort(){
$this->doAbort();
}
}
В приведенном выше примере контроллера, метод testingAbort()
работает, а testingRedirect()
и testingBack()
- нет! вместо этого они показывают пустую страницу.
Я предполагаю, что мне нужно выполнить перенаправления в самом контроллере (а не в чертах), но это приведет к дублированию большого количества условного кода в методах контроллера, и Я также не уверен, почему это происходит.