Как обозначить фасад запроса переменной в Laravel?Php

Кемеровские программисты php общаются здесь
Anonymous
Как обозначить фасад запроса переменной в Laravel?

Сообщение Anonymous »

Я провожу эксперимент, чтобы сделать мои контроллеры как можно более динамичными. Позвольте мне дать вам краткий обзор. У меня есть контроллер логотипа, который я настроил следующим образом:

Код: Выделить всё

use App\Models\Logo;

class LogoController extends Controller
{
public function add(Request $request)
{
$data['entity']         = 'logo';

$newEntityObj                = new Logo;
$newEntityObj->title         = $title;                         // set title
$newEntityObj->type          = $type;                          // set type
$saveNewEntityData           = $newEntityObj->save();          // save the entity data
------------------
-------------------
}
}
Теперь я внес некоторые изменения, например:
использовал переменную для обозначения модели логотипа.

Код: Выделить всё

$modelClass             = "App\\Models\\" . ucfirst($data['entity']);
А затем используйте переменную $modelClass для выполнения над ней действий Eloquent, например: -

Код: Выделить всё

$newEntityObj                = new $modelClass;
$newEntityObj->title         = $title;                         // set title
$newEntityObj->type          = $type;                          // set type
$saveNewEntityData           = $newEntityObj->save();          // save the entity data
Итак, класс контроллера логотипа был обновлен до:

Код: Выделить всё

use App\Models\Logo;

class LogoController extends Controller
{
public function add(Request $request)
{
$data['entity']         = 'logo';
$modelClass             = "App\\Models\\" . ucfirst($data['entity']);

$newEntityObj                = new $modelClass;
$newEntityObj->title         = $title;                         // set title
$newEntityObj->type          = $type;                          // set type
$saveNewEntityData           = $newEntityObj->save();          // save the entity data
------------------
-------------------
}
}
Теперь я создал файл запроса Validationb, чтобы использовать его для проверки формы. Я использую это следующим образом:

Код: Выделить всё

// Request Validation Inclusion //
use App\Http\Requests\AdminRequests\LogoValidation\LogoRequest;

public function add(LogoRequest $request)
{
--------------------------
--------------------------
}
Теперь вместо того, чтобы писать публичную функцию add(LogoRequest $request), я хочу сделать ее более динамичной. Примерно так:

Код: Выделить всё

class LogoController extends Controller
{
public static $classEntity          = 'logo';
public static $classFormattedEntity = null;
public static $classRequestVariable = null;

public function __construct()
{
$entityArray    = explode('-', str_replace('_', '-', self::$classEntity));
foreach($entityArray as $keyEntity => $rowEntity)
{
if($keyEntity !== 0)
$entityArray[$keyEntity] = ucfirst($rowEntity);
}
self::$classFormattedEntity = implode('', $entityArray);
self::$classRequestVariable = "App\\Http\\Requests\\AdminRequests\\" . ucfirst(self::$classFormattedEntity) . "Validation\\" . ucfirst(self::$classFormattedEntity) . "Request";
}

public function add(self::$classRequestVariable $request)
{
..............................
..............................
}
}
Переменная self::$classRequestVariable фактически печатает App\Http\Requests\AdminRequests\LogoValidation\LogoRequest
Но когда я пишу общедоступную функцию add(self::$classRequestVariable $request) вместо общедоступной функции add(LogoRequest $request), я получаю следующую ошибку:
Изображение


Подробнее здесь: https://stackoverflow.com/questions/696 ... in-laravel

Вернуться в «Php»