我有一个名为CreatePost的组件

class CreatePost extends Component
{
    public PostForm $form;
 
    public function save()
    {
        $this->form->store(); 
 
        return $this->redirect('/posts');
    }
 
}

下面是我的POSTFORM:

class PostForm extends Form
{
    public $title = '';
 
    public $content = '';
 
    public function store() 
    {
        $this->validate();
 
        Post::create($this->all());
    }
}

现在,在我的PostForm store()方法中,我想注入我的PostService来创建一个Post.做这件事最好的方法是什么?

谢谢

我能想到的最好方法是将postService注入组件的ot()方法中,然后将其作为参数传递到store()中,但我希望是否有更干净的方法来完成这项工作,例如通过ServiceProvider?

推荐答案

因为我想把PostFormCreatePost组件中解耦出来,并且也想遵循DI原则,所以我做了一个PostService的接口,并在PostForm store()方法中使用它.我使用Laravel ServiceProvider来提供Service类的具体实现.它是如此简单,但没有进入我的脑海.

app(PostServiceInterface::class)

Php相关问答推荐

获得客户S在WooCommerce为期1年的总支出

如果再次调用SESSION_START(),会话.gc-max是否会重新启动?或者它是从第一次创建会话开始计算的?

如何使用`preg_replace`删除重复的空格字符

LaravelEloquent 地根据表中的值提取记录

如何将隐式乘法添加到PHPPEG基本计算器语法中?

将文件添加到存档,而不重建存档

添加并显示单价字段到WooCommerce产品变化

针对给定产品类别的WooCommerce计数审核

Symfony Validator:如何使用XML表示法验证深度嵌套的数据?

Laravel处理belongToMany和额外字段

Mockery在模拟Redis连接时抛出错误:Mockery\Exception\BadMethodCallException

将自定义字段添加到管理产品 在 WooCommerce 3.2+ 中批量编辑

如何在 PHP 中以 hh:mm:ss 格式获取两个 strtotime datetime/s 之间的时间差

Woocommerce 中为空时隐藏显示变体自定义字段数据

无法读取某些 WordPress 主机上的 cookie

Laravel路由中的符号在slug中会创建额外的斜杠

WooCommerce订单支付页面上的附加支付订单按钮

Laravel使用另一张表进行关联查询

Laravel 查询关系是否为 bool

Symfony 自定义注销