我目前有一个抽象类,我正在扩展到其他控制器。我在抽象类中有一个抽象函数,它取值并将其放在__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'。 –