Вспомогательный класс Laravel 5.6

Laravel 5.6, имя модели не найдено во вспомогательном классе (N:B: вспомогательный класс находится в App\Helpers\Helper.php)

введите здесь описание изображения


person Arpita Siddiquee    schedule 04.03.2018    source источник
comment
пространство имен отсутствует в коде   -  person Kamal Soni    schedule 04.03.2018


Ответы (3)


Имя модели недостаточно для того, чтобы Laravel получил правильный класс, ему также нужно пространство имен.

Вы можете попробовать это, если все ваши модели находятся в App\Modelsnamespace :

public static function getAll($modelName)
{
    $modelName = '\App\Models\' . $modelName;
    return $modelName::all();
}

Но если это не так, вы должны отправить полное имя своему вспомогательному методу следующим образом:

Helper::getAll(\App\Models\User::class);
Helper::getAll(\App\Models\Subfolder\OtherModel::class);
// ...

Дайте мне знать, если это помогло вам :)

person Florian Laforgue    schedule 21.03.2019

Вам нужно добавить пространство имен.

<?php

namespace App\Helpers; // <--- Add this

class Helper{
...
person Wahyu Kristianto    schedule 04.03.2018

попробуйте это.
сначала импортируйте пространство имен Model следующим образом

use Illuminate\Database\Eloquent\Model;

затем добавьте ключевое слово Model перед $model. Нравится

public function getAll(Model $model){ // your code }

может поможет :)

person nazzalra    schedule 21.05.2018