我正试图在一个名为Page的类中放置一个特征.我还需要重命名一个特征函数,以便它不会与现有的类函数冲突.我以为我成功完成了所有这些,但是我得到一个指向错误位置的错误?!
Call to undefined function App\Pages\Models\myTraitDefaultScope()
我也试过:MyTrait\defaultScope($query)
而不是试图重命名冲突的功能.但是我得到以下错误:
Call to undefined function App\MyTrait\defaultScope()
下面是单独文件中包含的特征和类.
where('active', '1') } }
.
我不是那么棒,所以如果我有一些严重错误请不要开枪:)
1> Moppo..:当你在类中使用'trait'时,该类继承了trait的所有方法和属性,就像它扩展了一个抽象类或接口一样
所以,这种方法
MyTrait
:public function defaultScope($query){ return $query->where('active', '1') }将由您的
Page
班级继承因为您将此方法别名为:
myTraitDefaultScope
,要调用该方法,您应该调用它,就像调用Page
该类的其他每个方法一样 :public function defaultScope($query){ //call the method of the class return $this->myTraitDefaultScope($query); }