В Laravel Middleware игнорируется в запросе ajax?

-1

Это метод в контроллере. Он запрашивается x-editable ajax.

/**
 * Update base info such as status.
 *
 * @param Request $request
 * @return mixed
 */
public function postUpdateInfo(Request $request)
{
    $this->middleware('recruit');
    dd('passed');
    $recruit = Recruit::find($request->get('pk'));
    list($key, $value) = array($request->get('name'), $request->get('value'));
    if ($recruit->update([$key => $value])) {
        return Response::json(['success' => 1]);
    }
}

В промежуточном программном коде ниже приведены коды:

/**
 * Handle an incoming request.
 *
 * @param  \Illuminate\Http\Request $request
 * @param  \Closure $next
 * @return mixed
 */
public function handle($request, Closure $next, $permission)
{
    die();
    if (Entrust::can($permission)) {
        return $next($request);
    }

    $this->belongsToMe($request, $this->instance);

    return $next($request);
}

Но в хром я рассматриваю ответ в сети.

Изображение 174551

Итак, я думаю, что промежуточное программное обеспечение игнорируется в запросе ajax? Настолько удивительно.

Большое спасибо.

  • 0
    Возможно, вы регистрируете свое промежуточное программное обеспечение не в том месте контроллера. Взгляните на документацию по промежуточному программному обеспечению и найдите правильное место.
Теги:
laravel-5
laravel-middleware

1 ответ

1
Лучший ответ

Вы должны прикрепить свое промежуточное ПО в контроллере:

public function __construct()
{
    //assign the middleware to all the methods of the controller
    $this->middleware('recruit');
}

Или, если вы хотите прикрепить его только к некоторому методу своего контроллера, выполните:

//assign the middleware only to the postUpdateInfo method
$this->middleware('recruit', [ 'only '=> 'postUpdateInfo' ] ]);
  • 0
    Спасибо, это работает!
  • 0
    @ Джерми: пожалуйста. Пожалуйста, рассмотрите возможность принятия / голосования, если ответ был полезен :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню