重用不同模型类的方法 - Laravel

时间:2018-01-29 17:27:24

标签: laravel

我在一个项目中工作,我注意到有不同的方法用于不同的模型:

Class1::where('id', $id)
      ->update($request->except('_token'));

Class2::where('id', $id)
      ->update($request->except('_token'));

Class3::where('id', $id)
      ->update($request->except('_token'));

所以我认为每个班级都有这些重复的方法。 有没有办法制作一个通用方法并在我的控制器中使用它,比如这个?

AnyClass::genericMethod($id);

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以对以下方法使用特征:

trait SomeTrait
{
    public function genericMethod($id)
    {
        return $this->where('id', $id)->update(request()->except('_token'));
    }
}

并将其添加到任意数量的模型中:

class Class3 extends Model
{
    use SomeTrait;