我目前有一個抽象類,我正在擴展到其他控制器。我在抽象類中有一個抽象函數,它取值並將其放在__construct
中。可選的抽象方法
abstract class Controller extends BaseController {
abstract public function something();
public function __construct(Request $request) {
if (!is_null($this->something())){
$this->global_constructor_usse = $this->something();
}
}
}
我的問題是,在不需要此抽象函數的控制器上,我不得不放置在空函數中。
class ControllerExample extends Controller {
public function something(){
return 'somethinghere';
}
}
有沒有辦法使抽象函數可選或具有默認值?
class EmptyControllerExample extends Controller {
public function something(){}
}
或者什麼是最好的方法去做這件事?
在Controller抽象類中給它一個默認的主體,即使它只是'return;'。然後在需要它的子類中覆蓋它。沒有像「可選抽象方法」這樣的東西。 –
我收到以下錯誤:'抽象函數App \ Http \ Controllers \ Controller :: Upload()不能包含主體'你能舉一個例子嗎? – jagmitg
@JSG因爲它不能是'抽象的'並且有一個身體。如果它有一個body,你不能在方法sig中使用'abstract'。 –