是否可以将模型传递给Laravel';s操作,并使用匹配的post数据自动恢复?
如果可以将控制器操作的类型提示设置为现有模型,并通过这种方式强制操作使用post方法传递的数据来恢复模型(如果post字段与模型字段匹配),那么这将是完美的。我从asp.NETMVC知道这一点,它工作得非常完美,但在Laravel中找不到类似的方法是否可以将模型传递给Laravel';s操作,并使用匹配的post数据自动恢复?,laravel,laravel-5,eloquent,laravel-5.5,Laravel,Laravel 5,Eloquent,Laravel 5.5,如果可以将控制器操作的类型提示设置为现有模型,并通过这种方式强制操作使用post方法传递的数据来恢复模型(如果post字段与模型字段匹配),那么这将是完美的。我从asp.NETMVC知道这一点,它工作得非常完美,但在Laravel中找不到类似的方法 提前感谢您好吧,假设您在用户模型上设置了$filleble属性,可以这样做: class UserService { protected $user; public function __construct() {
提前感谢您好吧,假设您在
用户
模型上设置了$filleble
属性,可以这样做:
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->only('name','email','password'));
但这是相当不标准的行为。我看不出有任何必要像这样自动创建模型,在控制器中放入更合理的模型只是:
$user = User::create($request->all());
您还应该考虑的是应该填写的字段,最合理的是直接传递哪些字段应该使用,例如:
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->only('name','email','password'));
你的意思是路线模型绑定吗?非常好的答案!它看起来非常方便,只需一行代码就可以解决我的需要。生成服务的解决方案也非常简洁。谢谢,不幸的是,我现在无法测试这一点,所以我会在可以的时候接受答案:)