是使用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