Nur*_*yev 1 php model traits laravel eloquent
有什么原因为什么我们只有这种静态方式才能在Laravel中引导特征:
static function bootMyTrait ()
{...}
Run Code Online (Sandbox Code Playgroud)
有什么方法可以启动特征并在启动功能中包含模型实例?像这样:
function bootMyTrait ()
{
if ($this instanceOf awesomeInterface)
{
$this->append('nice_attribute');
}
}
Run Code Online (Sandbox Code Playgroud)
我需要这种自动对焦,并且很长一段时间都没有找到任何解决方案。
从Laravel 5.7开始,您可以使用特征初始化程序,而不是特征启动程序。我已经完成了相同的任务,并且能够像这样解决它:
public function initializeMyTrait()
{
if ($this instanceOf awesomeInterface)
{
$this->append('nice_attribute');
}
}
Run Code Online (Sandbox Code Playgroud)