我在laravel
上有简单的模型,我想使用PHP面向对象来保存或更新Controller
内的数据。我的解决方案的所有方法都可以正常工作,但我无法重定向。
class RechargeRangeCard extends Model
{
protected $table = "recharge_range_cards";
protected $guarded = ['id'];
private $request;
public function data(StoreRechargeRangeCard $request)
{
$this->request = $request;
return $this;
}
public function store()
{
$data = RechargeRangeCard::create(
[
'minimum' => $this->request->input('minimum_range'),
'maximum' => $this->request->input('maximum_range'),
'user_id' => Auth::user()->id,
]
);
return $this;
}
public function redirect()
{
return redirect()->to('rechargeRangecards');
}
}
public function store(StoreRechargeRangeCard $request)
{
$class = new RechargeRangeCard();
$class->data($request)->store()->redirect();
}
在此链接方法redirect()
不起作用。
答案 0 :(得分:1)
您必须从Controller方法返回重定向才能使其正常工作:
public function store(StoreRechargeRangeCard $request)
{
$class = new RechargeRangeCard();
return $class->data($request)->store()->redirect();
}
但是,我想指出这是混合你的担忧。重定向严格地是控制器的关注点;你的模型不应该对此有任何线索,甚至不可能。