我们知道php
是单继承
的
我们可以用trait来达到复用
的目的
创建文件appTraitsHasCreator.php
<?php namespace App\Traits;
trait HasCreator
{
public static function hasCreator()
{
static::saving(function ($model) {
$model->creator_id = $model->creator_id ?? 1;
});
}
public function test(){
echo "test";
}
}
然后可以在controller
中使用
<?php namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cookie;
use App\Models\User;
use Illuminate\Support\Facades\URL;
use App\Traits\HasCreator;
class HomeController extends Controller
{
use HasCreator;
public function get(Request $request){
echo $this->test();
self::hasCreator();
}
}
如果存在函数重复定义的情况 ,那么优先级是
调用类 >Trait > 父类,也就是说当 Trait 中出现于调用类重复的属性和方法的时候,默认是以调用类为主的。
如有问题,可以QQ搜索群1028468525加入群聊,欢迎一起研究技术
转载请注明:laravel中使用trait 出自老鄢博客 | 欢迎分享