Хотите назначить динамический класс, но верните «Класс« Продукт »не найден» - PullRequest
0 голосов
/ 28 апреля 2019

Я все еще новичок в этой концепции, я реализовал это несколько лет назад, и больше никогда не буду делать это, так как начал использовать фреймворк, такой как laravel.

Вот код.

<?php

namespace App\Http\Controllers;

use App\Http\Classes\SearchSubscriptionProduct;
use Corals\Modules\Subscriptions\Models\Product;
use Illuminate\Http\Request;

class SearchWideController extends Controller
{
    /**
     * Searching methods
     *
     * @param  Request $request
     * @return string
     */
    public function subscriptionProductSearch(Request $request)
    {
        $search = $request->input('search_value');
        $uri    = $request->input('uri');

        list($value, $option) = explode('/', $search);

        $class = "Product";

        $out = (new SearchSubscriptionProduct('subscriptions_products', (new $class)))
            ->search($value, $option);

        return response()->json([
            'value'  => $search,
            'option' => $option,
            'html'   => $out->getSearchTemplate(),
            'result' => $out->models(),
        ]);
    }
}

Я хочу, чтобы эта часть была динамической.

$class = "Product";

$out = (new SearchSubscriptionProduct('subscriptions_products', (new $class)))
    ->search($value, $option);

Я хочу присвоить другое имя класса переменной $class в зависимости от запроса.Класс $ должен быть моделью и выполнять поиск на основе заданной модели.

Сейчас я просто сделал что-то вроде $class = "Product";, чтобы посмотреть, сработает ли моя идея.

Скорее, это не таккогда я пытался отправить данные через ajax, вместо этого я получил это возвращенное сообщение об ошибке

"Class 'Product' not found"

Возможно ли это.Как правильно это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...