Вообще говоря, это должна быть довольно простая задача. Это должно быть очень похоже на следующий вопрос о переполнении стека
Но, учитывая, что прошло два года, возможно, кое-что в синтаксисе изменилось.
Все, что я хочу сделать, это передать переменную из промежуточного программного обеспечения в контроллер, поэтому я не дублирую запросы mysql.
Вот мое промежуточное ПО:
namespace App\Http\Middleware;
use Closure;
class CheckRole
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$id = $request->user()->id;
$rr = $request->user()->isSuperAdmin();
if ($request->user()->isSuperAdmin()) {
$request->merge(['group' => 123]);
return $next($request);
}
echo "not admin";
}
}
Таким образом, промежуточное программное обеспечение работает нормально, и если я DD ($ request) в промежуточном программном обеспечении, я вижу свою группу => 123 на странице. (Сейчас это 123 для простоты.)
Итак, я хочу передать его своему AdminController:
<?php
namespace SleepingOwl\Admin\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use SleepingOwl\Admin\Form\FormElements;
use SleepingOwl\Admin\Form\Columns\Column;
use SleepingOwl\Admin\Display\DisplayTable;
use Illuminate\Contracts\Support\Renderable;
use SleepingOwl\Admin\Display\DisplayTabbed;
use Illuminate\Validation\ValidationException;
use SleepingOwl\Admin\Contracts\AdminInterface;
use SleepingOwl\Admin\Model\ModelConfiguration;
use Illuminate\Contracts\Foundation\Application;
use SleepingOwl\Admin\Contracts\Form\FormInterface;
use SleepingOwl\Admin\Contracts\ModelConfigurationInterface;
use SleepingOwl\Admin\Contracts\Display\ColumnEditableInterface;
class AdminController extends Controller
{
/**
* @var \DaveJamesMiller\Breadcrumbs\Manager
*/
protected $breadcrumbs;
/**
* @var AdminInterface
*/
protected $admin;
/**
* @var
*/
private $parentBreadcrumb = 'home';
/**
* @var Application
*/
public $app;
/**
* AdminController constructor.
*
* @param Request $request
* @param AdminInterface $admin
* @param Application $application
*/
public function __construct(Request $request, AdminInterface $admin, Application $application)
{
$this->middleware('CheckRole');
Итак, как вы можете видеть, я вызываю промежуточное ПО для этого конструктора. После вызова я должен сделать что-то вроде:
$request->get('group'); or $request->group;
После долгих попыток ничего не работает, и я продолжаю получать нулевое значение. По сути, это не должно быть ужасно сложно, но, похоже, у меня отключен синтаксис или я не использую правильные пространства имен?