是使用laravel的返回值';什么很重要?
让我们想象一下这个代码是使用laravel的返回值';什么很重要?,laravel,Laravel,让我们想象一下这个代码 public function store(Request $request) { $validated = $request->validate(['name' => 'required']); $post = new Post(); $post->name = $request->name; // OR $post->name = $validated['name']; $post->save(); }
public function store(Request $request) {
$validated = $request->validate(['name' => 'required']);
$post = new Post();
$post->name = $request->name;
// OR
$post->name = $validated['name'];
$post->save();
}
使用$validated['name']
而不是$request->name
是否重要
我正在测试一些基本的sql注入,我的应用程序似乎受到了保护,即使使用$request->name
那么,
$request
是否经过验证?正如@Tim Lewis所说,它们是相同的
因为如果验证没有通过,它将不会继续到控制器方法中的其余代码中
使用已验证的数组的最常见情况是,当您尝试创建新模型或更新模型时,您希望手动添加每个属性,以便可以像这样直接传递它
$validated=$request->validate([
“标题”=>“必需”,
“正文”=>“必需”
]);
Post::创建($validated);
正如蒂姆·刘易斯所说,他们是一样的
因为如果验证没有通过,它将不会继续到控制器方法中的其余代码中
使用已验证的数组的最常见情况是,当您尝试创建新模型或更新模型时,您希望手动添加每个属性,以便可以像这样直接传递它
$validated=$request->validate([
“标题”=>“必需”,
“正文”=>“必需”
]);
Post::创建($validated);
它们应该相同,但您可以自己确认:dd($validated['name',$request->name,$validated['name']==$request->name)代码>。如果您通过了“Test”作为名称,它应该输出“Test”,“Test”,true
它们应该是相同的,但是您可以自己确认:dd($validated['name'],$request->name,$validated['name']==$request->name)代码>。如果您通过了“Test”作为名称,它应该输出“Test”,“Test”,true