我看到laravel控制器带有2个请求类。它们是一样的吗?
namespace BSA
{
class Program
{
static void Main(string[] args)
{
var arr = new int[10];
Random rnd = new Random();
for (int i = 0; i < arr.Length; i++)
{
arr[i] = rnd.Next(1, 1000);
}
Array.Sort(arr);
for (int i = 0; i < arr.Length; i++)
{
Console.Write("{0}\n", i);
}
while (true)
{
Console.WriteLine("Enter the number to be searched in the array.");
var searchItem = Convert.ToInt32(Console.ReadLine());
var foundPos = Search(arr, searchItem);
if (foundPos > 0)
{
Console.WriteLine("Key {0} found at position {1}", searchItem, foundPos);
}
else
{
Console.WriteLine("Key {0} not found", searchItem);
}
}
}
public static int Search(int[] arr, int item)
{
var min = 0;
var N = arr.Length;
var max = N - 1;
int basicOperations = 0;
basicOperations++;
do
{
var mid = (min + max)/2;
if (arr[mid] == item)
return mid;
if (item < arr[mid])
max = mid - 1;
else
min = mid + 1;
basicOperations++;
} while (min <= max);
return basicOperations;
}
}
}
和
use Illuminate\Http\Request;
选择其中一个是可选的吗?
答案 0 :(得分:1)
App\Http\Requests\Request
扩展了Illuminate\Foundation\Http\FormRequest
,任何扩展它的类都将在从IoC容器中解析出来时自行验证。
另一方面,Illuminate\Http\Request
只是一个简单的请求,它直接从SymfonyRequest
扩展,如果您只需要从当前请求中提取请求参数或用户,那么注入控制器方法很有用
答案 1 :(得分:1)
use Illuminate\Http\Request;
这是一个位于vendor/laravel/framework/src/Illuminate/Http/Request.php的文件,它是一个包含与请求相关的所有方法和属性的类,它扩展了SymfonyRequest。
class Request extends SymfonyRequest implements Arrayable, ArrayAccess
{
// ...
}
use App\Http\Requests;
这个本身只是一个命名空间,它就像请求命名空间的存根。我从不使用它(我为每个请求使用一行)。
可以这样使用:
public function save(Requests\FormRequest $request)
答案 2 :(得分:0)
Laravel 5(我希望:p)你可以在顶部使用:
use Request;
答案 3 :(得分:0)
我不太确定使用Illuminate \ Http \ Request; 但App \ Http \ Request是用于以下的类:
获取用户的输入数据。
如果用户填写表单,那么我们可以在此类的帮助下获取数据。
2.进行用户输入验证。
验证可以在控制器中完成,但这不是一个好习惯。 我们应该使用可以通过以下方式制作的单独请求类: php artisan make:请求请求类名。 这将使App \ Http \ Requests \中的文件具有给定名称,即request-class-name。 在本课程中,我们可以进行验证和授权。 如果您想了解授权,请了解盖茨https://laravel.com/docs/5.4/authorization。