Я пытаюсь разработать веб-приложение, используя laravel 5.3, и столкнулся с проблемой, которую до сих пор не удалось решить.
Вот контекст.
Я получил простую модель Laravel под названием Section
, которая реализует конструктор, как показано ниже;
public function __construct($title = null, array $attributes = array()){
parent::__construct($attributes);
try {
\App\logic_model\system\internal\Logger::debug_dump("~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
\App\logic_model\system\internal\Logger::debug_dump("create section ".$title);
$this->title = $title;
$this->save();
return $this;
} catch(\Exception $e){
\App\logic_model\system\internal\Logger::dev_dump($e->getMessage());
throw $e;
}
}
Создание экземпляра с использованием конструктора, кажется, работает очень хорошо.
Я написал функцию find_by_title
, как показано ниже:
public static function find_by_title($title){
$section = \App\logic_model\sections\Section::where("title", "=", $title)->first();
return $section;
}
Здесь возникает проблема (неожиданное поведение): Кажется, что функция Eloquent where
вызывает мой перегруженный конструктор вместо конструктора по умолчанию.
Мой вопрос: почему это так? Как это исправить?