Если заголовок вопроса не актуален, пожалуйста, отредактируйте его.
Я пытаюсь создать структуру, в которой нашел другой проект. Мне это очень нравится, но из-за недостатка знаний я не совсем понял его реализацию.
У меня есть контроллер TrainingClassTypesController
, в котором я хочу использовать метод из служб или репозитория. Для меня я помещаю имя папки Services.
Итак, в папке Services у меня есть следующие:
Services:
-- BaseAbstractMethods.php // has generic methods
-- BaseInterfaces.php // has generic interfaces
-- TrainingClassType // Folder Directory inside Services
-- -- TrainingClassTypeInterfaces.php // required interfaces
-- -- TrainingClassTypeEloquent.php // extending & implementing all above interfaces & interfaces
Ниже TrainingClassTypeEloquent.php
,
namespace App\Services\Voyager\Eloquent\TrainingClassType;
use Illuminate\Http\Request;
use App\Services\BaseAbstractMethods;
use App\Services\TrainingClassType\TrainingClassTypeInterfaces;
use App\Services\BaseInterfaces;
use App\Models\Trainings\AppTrainingClassType;
class TrainingClassTypeEloquent extends BaseAbstractMethods implements BaseInterfaces, TrainingClassTypeInterfaces
{
public static $model;
public function __construct(AppTrainingClassType $appTrainingClassType)
{
self::$model = $appTrainingClassType;
}
public static function updateTrainingClassType($id, $request)
{
$response = false;
$isUpdated = self::$model::where('training_class_id',$id)->update([
'app_id' => $request->app_id
]);
if($isUpdated == 1){
$response = true;
}
return $response;
}
}
Итак, в других контроллерах я использую метод TrainingClassTypeEloquent::updateTrainingClassType($id, $request)
. Когда я пытаюсь, я получаю следующую ошибку:
Class name must be a valid object or a string
Может ли кто-нибудь рассказать мне об этой концепции и о том, как я могу исправить проблему. Я хотел бы поблагодарить, и это было бы улучшением моего мастерства.
Большое спасибо