laravel中使用trait

发布时间:2020-12-19 14:52:27 阅读:1022次

我们知道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加入群聊,欢迎一起研究技术

支付宝 微信

有疑问联系站长,请联系QQ:QQ咨询
上一篇:电影八佰

转载请注明:laravel中使用trait 出自老鄢博客 | 欢迎分享