微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在供应商包类中实现应用模型类?

如何解决如何在供应商包类中实现应用模型类?

如何在我的供应商包中使用另一个类? 我想实现“可搜索”和“可查看”并将我的 SEO morphOne 关系添加Rinvex\Categorizable 之类的包中,如何在不向此包中添加代码的情况下执行此操作{从供应商包之外}?>

解决方法

您可以尝试从您需要的包中扩展类并在那里添加关系。 像这样:

namespace App\Models;

use App\Models\Product;
use Spatie\Searchable\Searchable;
use CyrildeWit\EloquentViewable\Contracts\Viewable;
use Rinvex\Categories\Models\Category as RinvexCategory;

class Category extends RinvexCategory implements Searchable,Viewable
{
    // Add relactions,override RinvexCategory methods or anything that you need :)
    public function products()
    {
        return $this->hasMany(Product::class);
    }
}

并在您的其他代码中使用 App\Models\Category

,

您可以在应用中创建模型并扩展包(供应商)模型。然后定义任何你想要的东西,添加新的特征或者你可以覆盖方法。 您可以使用您的模型而不是软件包提供的模型。

例如:

use Rinvex\Categories\Models\Category;

class MyModel extends Category {

  use MyExampleTraits,SearchableTraits;

  // You can add a new column to the table by publishing package migrations
 // or you can create a new migration to add your new columns
 
  public function seo() {
      return $this->morphOne(Seo::class,'seoable');
  }
}

注意,上面的代码只是为了给你提示的演示。希望对您有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。