Для своего приложения я создал функцию, которая возвращает либо представление, либо уже обработанное представление внутри некоторого json. Поскольку мне нужно будет использовать эту функцию довольно часто, я сделал специальный помощник, чтобы я мог вызывать его с любого контроллера. однако, к сожалению, когда я пытаюсь использовать другой псевдоним внутри этого помощника, он, кажется, не распознает его. сообщая мне, что псевдоним «Запрос» не найден, хотя я могу получить к нему доступ и использовать его с любого контроллера.
Я добавил помощника внутри de config / app.php с псевдонимом, чтобы было проще получить к нему доступ.
Это мой код:
контроллер:
use AppHelper;
class MediaController extends Controller
{
public function index()
{
return AppHelper::returnView("backend.media.index", "navigation.media.media");
}
...
AppHelper:
<?php
namespace App\Helpers;
use Request;
class AppHelper
{
public static function returnView($viewName, $menu, $data = []) {
$template = $viewName.'-template';
$view = $viewName;
if (Request::ajax()) {
if(isset($data->id)){
$navigation = view('backend.navigation.right-menu')->with('id', $data->id)->with('menuItems', $menu)->render();
} else {
...
В помощнике я также пытался вызвать «Запрос» через его фактический путь, но безрезультатно.
Я пытался найти решение в течение часа или около того, но просто не могу найти его в Google или в stackoverflow.
Спасибо за прочтение.
С уважением, Саймон
Я не думаю
use Request;
достаточно конкретно, учитывая количество различных Request
занятия в Ларавеле. Вы, вероятно, ищете:
use Illuminate\Http\Request;
если вы хотите определить Request $request
где-то в вашем AppHelper
или псевдоним Request
доступно через:
use Illuminate\Support\Facades\Request;
Который должен позволять использование Request::ajax()
и аналогичные функции.
В качестве альтернативы, вы можете передать $request
объект, который уже доступен из любого метода контроллера, из вашего MediaController
функция index()
, лайк:
MediaController.php
use Illuminate\Http\Request;
public function index(Request $request){
return AppHelper::returnView($request, "backend.media.index", "navigation.media.media");
}
AppHelper.php
public static function returnView($request, $viewName, $menu, $data = []) {
...
if($request->ajax()){
...
}
}
Изменить: некоторые предостережения к ajax()
метод:
use Illuminate\Support\Facades\Request;
...
if(Request::ajax()){ ... }
Выше должно работать нормально, или, удалите use
заявление и ссылка с
if(\Request::ajax()){ ... }
При прохождении $request
убедитесь, что это пример Illuminate\Http\Request
, а также $request->ajax()
должно работать нормально.
Других решений пока нет …