为了账号安全,请及时绑定邮箱和手机立即绑定

简化用于其他控制器的代码

简化用于其他控制器的代码

PHP
一只斗牛犬 2021-06-28 17:57:30
是否可以简化它以用于各种控制器方法?$eventId = request()->route('event');$event = Event::where('id', $eventId)->first();if($event->finish == 0) {    return $content        ->header(__('Timing'))        ->description(__('List'))        ->body($this->grid());}else {    return $content            ->header(__('Start list'))            ->description(__('List'))            ->body(view('admin.events.finished'));}当完成等于 0 时,唯一改变的是标题、描述和正文,其他都是相同的。
查看完整描述

2 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

您可以将要点保存在模型中,然后在需要时调用它。


public function event ($eventId){

   $event = Event::where('id', $eventId)->first();


   if($event->finish == 0) {

     $outcome = $content ->header(__('Timing')) 

          ->description(__('List')) ->body($this->grid()); 


  } else { 

    $outcome = $content ->header(__('Start list')) 

            ->description(__('List'))

             ->body(view('admin.events.finished')); 

  }


   return $outcome;

  }


查看完整回答
反对 回复 2021-07-02
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

您的控制器中没有太多逻辑,所以还不错。但是是的,你可以。我注意到的几件事是$event->finish == 0我会在你的模型上创建一个范围作为第一件事


public function isFinished()

{

    return $this->finish == 0;

}

你究竟是如何获得 EventId 的?我想它是通过参数传递的?那么您应该能够将其作为依赖项获取吗?


public function YourcontrollerFunction(Request $request, $eventId)

{

    //Either you get the request from a parameter or the $request->event_id

}

所以一个小的重构总共看起来像这样:


public function YourcontrollerFunction(Request $request, $eventId)

{

    $event = Event::findOrFail($eventId);

    if($event->isFinished()) {

        return $content

           ->header(__('Timing'))

           ->description(__('List'))

           ->body($this->grid());

    }

//No need for the else.

   return $content

     ->header(__('Start list'))

     ->description(__('List'))

     ->body(view('admin.events.finished'));

}

如果响应被大量使用,您可以创建一个 Response 类,该类也被存储,但在这里看不到原因。


查看完整回答
反对 回复 2021-07-02
  • 2 回答
  • 0 关注
  • 141 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信