如果可以將控制器的動作類型提示設置爲現有模型,並且這種方式強制動作以通過post方法傳遞的數據來安裝模型(如果後置字段與模型字段相匹配),那將是完美的。我從asp.net MVC知道這一點,它工作完美,但無法找到在Laravel中做類似事情的方式。是否可以將模型傳遞給Laravel的動作並使用匹配的發佈數據自動安裝它?
預先感謝您
如果可以將控制器的動作類型提示設置爲現有模型,並且這種方式強制動作以通過post方法傳遞的數據來安裝模型(如果後置字段與模型字段相匹配),那將是完美的。我從asp.net MVC知道這一點,它工作完美,但無法找到在Laravel中做類似事情的方式。是否可以將模型傳遞給Laravel的動作並使用匹配的發佈數據自動安裝它?
預先感謝您
好吧,假設你在User
模式它可以在他們做的方式是這樣設置$fillable
屬性:
class UserService
{
protected $user;
public function __construct()
{
$this->user = User::create(request()->all());
}
public function getUser()
{
return $this->user;
}
}
class UserController
{
public function store(UserService $service)
{
$user = $service->getUser();
return redirect()->route('users.show', $user);
}
}
但這是相當不規範的行爲。我看不出有任何需要自動這樣創建模型,合理得多將投入控制器剛:
$user = User::create($request->all());
什麼你也應該考慮的是,應填寫在田間地頭,最合理的是通過直接應該使用哪些字段,例如:
$user = User::create($request->only('name','email','password'));
非常好的答案!它看起來非常方便,只需一行代碼即可解決我的需求。生成服務的解決方案也非常簡潔。謝謝,不幸的是我現在可以'測試一下,所以我會接受答案時,我可以:) –
您是指路由模型綁定? –