缺少一个参数
修改理由:
详细描述:
new FoodIsHealthy($food),
应该是
new FoodIsHealthy(user(), $food),
此投稿已在 4年前 合并。
内容修改:
Old | New | Differences |
---|---|---|
1 | ||
2 | 1 | ![file](https://cdn.learnku.com/uploads/images/201805/31/1/FYDTHGIoXv.jpeg?imageView2/2/w/1240/h/0) |
3 | 2 | |
4 | 3 | Laravel 的自由度超越了许多前期框架,这才是它真正的力量来源,但是伴随力量而来的是职责。 | … | … |
7 | 6 | |
8 | 7 | 在本文中,我将概述一种更有效的方法,以避免我们在编写业务逻辑的时候经常会犯的错误。 |
9 | 8 | |
10 | ||
9 | ||
11 | 10 | |
12 | 11 | ### 业务逻辑究竟是什么? |
13 | 12 | … | … |
74 | 73 | |
75 | 74 | 事情可能非常容易失控... |
76 | 75 | |
77 | ||
76 | ||
78 | 77 | ### 让我们整理一下思路 |
79 | 78 | |
80 | 79 | 这样编写控制器不是很好吗? | … | … |
83 | 82 | public function eat(Food $food) |
84 | 83 | { |
85 | 84 | $this->business([ |
86 | new FoodIsHealthy( | |
85 | new FoodIsHealthy(user(), $food), | |
87 | 86 | new UserHasEnoughCaloriesRemaining(user(), $food), |
88 | 87 | ]); |
89 | 88 | ``` | … | … |
101 | 100 | |
102 | 101 | 将该逻辑的操作执行委托给另一个类会给我们带来更好的可测试性,*这在执行业务逻辑时是至关重要的*。 |
103 | 102 | |
104 | ||
103 | ||
105 | 104 | ### 让我们开始吧! |
106 | 105 | |
107 | 106 | 首先我们定义一个业务对象: | … | … |
141 | 140 | |
142 | 141 | > 我会建议添加 `passes()` 和 `message()` 方法来为这些对象添加接口契约。 |
143 | 142 | |
144 | ||
143 | ||
145 | 144 | 接下来,让我们编写一个方法来处理基类控制器中的所有业务对象: |
146 | 145 | |
147 | 146 | ``` |