澄清Laravel请求类

时间:2016-05-15 02:59:00

标签: laravel laravel-5.2

我看到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;

选择其中一个是可选的吗?

4 个答案:

答案 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是用于以下的类:

  1. 获取用户的输入数据。

  2. 如果用户填写表单,那么我们可以在此类的帮助下获取数据。

    2.进行用户输入验证。

    验证可以在控制器中完成,但这不是一个好习惯。 我们应该使用可以通过以下方式制作的单独请求类: php artisan make:请求请求类名。 这将使App \ Http \ Requests \中的文件具有给定名称,即request-class-name。 在本课程中,我们可以进行验证和授权。 如果您想了解授权,请了解盖茨https://laravel.com/docs/5.4/authorization