标签: laravel-request

Laravel请求使用查询字符串获取当前路径

是否有Laravel方法来获取具有查询参数的Request的当前路径?

例如,对于URL:

http://www.example.com/one/two?key=value
Run Code Online (Sandbox Code Playgroud)

Request::getPathInfo()会回来的/one/two.

Request::url()会回来的http://www.example.com/one/two.

期望的输出是/one/two?key=value.

php laravel laravel-5 laravel-request

47
推荐指数
5
解决办法
7万
查看次数

Laravel 5如何验证路由参数?

我想验证"表单请求"中的路由参数,但不知道如何操作.

下面是代码示例,我正在尝试:

路线

// controller Server
Route::group(['prefix' => 'server'], function(){
    Route::get('checkToken/{token}',['as'=>'checkKey','uses'=> 'ServerController@checkToken']);
});
Run Code Online (Sandbox Code Playgroud)

调节器

namespace App\Http\Controllers;


use App\Http\Controllers\Controller;

use Illuminate\Http\Request;
use App\Http\Requests;


class ServerController extends Controller {
    public function checkToken( \App\Http\Requests\CheckTokenServerRequest $request) // OT: - why I have to set full path to work??
        {   
            $token = Token::where('token', '=', $request->token)->first();      
            $dt = new DateTime; 
            $token->executed_at = $dt->format('m-d-y H:i:s');
            $token->save();

            return response()->json(json_decode($token->json),200);
        }
}
Run Code Online (Sandbox Code Playgroud)

CheckTokenServerRequest

namespace App\Http\Requests;

use App\Http\Requests\Request;

class CheckTokenServerRequest extends Request {

        //autorization

        /**
         * Get the validation rules …
Run Code Online (Sandbox Code Playgroud)

routes laravel laravel-5 laravel-validation laravel-request

27
推荐指数
4
解决办法
1万
查看次数

在Laravel中,我怎样才能获得***POST参数?

我知道可以在Laravel中使用$request->get('my_param')Input::get('my_param')获取POST或GET请求参数(我现在正在使用v5/dev版本,但对于4.2来说它是相同的).

但是,如何my_param通过POST参数确保我的来自并且不仅仅来自?my_param=42附加到URL?(除了恢复到ol' $_POST$_GET超级全局并将可测试性抛出窗外)

(注意:我也知道该Request::get方法将为POST请求提供POST参数,如果POST和具有相同名称的URL/GET参数都存在,但是......但是如果参数通过url查询字符串登陆相反,我想用一种Laravel惯用法来了解这一点)

php http-post laravel laravel-request

17
推荐指数
1
解决办法
9773
查看次数

如何修改laravel中的Request值?

我有以下代码,

我的问题是如何修改Request值?

public function store(CategoryRequest $request)
{
    try {
        $request['slug'] = str_slug($request['name'], '_');
        if ($request->file('image')->isValid()) {
            $file = $request->file('image');
            $destinationPath = public_path('images/category_images');
            $fileName = str_random('16') . '.' . $file->getClientOriginalExtension();
            $request->image = $fileName;
            echo $request['image'];
            $file->move($destinationPath, $fileName);
            Category::create($request->all());
            return redirect('category');
        }
    } catch (FileException $exception) {
        throw $exception;
    }
}
Run Code Online (Sandbox Code Playgroud)

但,

在每个请求输出

echo $request['image'];
Run Code Online (Sandbox Code Playgroud)

输出一些文本,如/ tmp/phpDPTsIn

laravel-5 laravel-request

16
推荐指数
2
解决办法
2万
查看次数

在Laravel 5中验证Update上的唯一Slug

我目前有一个具有文本字段和段塞字段的模型.

我验证了slug在我的表单请求类中是唯一的:

public function rules()
{
    return [
        'name' => 'required|min:3',
        'slug' => 'required|alpha_dash|unique:questions'
    ];
}
Run Code Online (Sandbox Code Playgroud)

这在创建时工作正常,并且正确地拒绝创建重复的slugs.但是在我的更新方法中,它不会让我保存记录,因为slug已经存在.当然slug确实存在,但它存在于正在编辑的记录中,所以我想继续允许它被保存.但是,它不应该被改为另一个记录上的slu ..

这是我的更新ArticlesController方法的样子:

public function update(Article $article, ArticleRequest $request)
{
    $article->update($request->all());

    return redirect('articles');
}
Run Code Online (Sandbox Code Playgroud)

有没有办法让这个工作在L5?

php laravel laravel-5 laravel-validation laravel-request

12
推荐指数
2
解决办法
9203
查看次数

我如何在Laravel 5.5中的FormRequest类中返回自定义响应?

我正在制作一个API,我希望返回错误数组,格式为$validator->errors();我通过手动方式验证请求时生成的格式.但我不能操纵回应.我想找到正确的方法来实现它.

这可以在Laravel 5.4中使用该formatErrors方法完成,并Illuminate\Contracts\Validation\Validator在FormRequest类中包含类,但对于版本5.5,它不起作用.我不知道怎么做.

这是我的控制器:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests\ProductRequest;
use Illuminate\Validation\Rule;
use App\Product;

class ProductController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(ProductRequest $request)
    {
        $products = Product::where('code', 'LIKE', '%'.$request->input('search').'%')
        ->where('name', 'LIKE', '%'.$request->input('search').'%')
        ->paginate(10);
        $products->withPath($request->fullUrl());
        return $products;
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {

    }

    /**
     * Store …
Run Code Online (Sandbox Code Playgroud)

laravel laravel-validation laravel-request laravel-response laravel-5.5

10
推荐指数
1
解决办法
3890
查看次数

可以在Request类中授权方法为HandlesAuthorization特性返回自定义消息吗?

我在Request类中有以下代码来检查用户是否有权执行更新.

HandlesAuthorization trait,默认情况下给出默认消息.有没有办法返回自定义消息?我看到在授权方法Request class可以return boolean只值.

class UpdateRoleRequest extends Request
{
    private $UserPermissionsSession;

    public function __construct(IRole $Role) {
        $this->UserPermissionsSession = new UserPermissionsSession();
    }

    public function authorize() {
        $UserID = \Auth::user()->UserID;
        return $this->UserPermissionsSession->CheckPermissionExists($UserID);
    }

}
Run Code Online (Sandbox Code Playgroud)

laravel laravel-5 laravel-request laravel-authorization laravel-5.5

8
推荐指数
1
解决办法
722
查看次数

在控制器中访问当前请求

在其他MVC框架中,访问当前请求对象就像一样简单$this->request。但是,在Laravel中,我通常会看到Request $request通常将其注入到每个动作(public function edit($id, Request $request))中。看起来像样板。有没有更好的方法来访问请求?(我现在可以使用继承来使用$this->request,我正在寻找Laravel的方法。)

更新:

我发现app('request')我可以使用当前请求。但是,我不确定它的潜在优缺点。

php laravel laravel-5 laravel-request

6
推荐指数
1
解决办法
5558
查看次数

如何在Laravel 5.5中为选定的Request类设置自定义响应

我正在尝试使用Laravel验证来生成自定义错误消息,但是我无法找到我应该重写的函数.

Route:POST:/entries/用于执行验证的EntryController@store用途EntryStoreRequest.

EntryStoreRequest

namespace App\Api\V1\Requests;

class EntryStoreRequest extends ApiRequest
{
    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'message' => [
                'string',
                'required',
                'max:65535',
            ],
            'code' => [
                'string',
                'max:255',
                'nullable'
            ],
            'file' => [
                'string',
                'max:255',
                'nullable'
            ],
            'line' => [
                'string',
                'max:255',
                'nullable'
            ],
            'stack' => [
                'string',
                'max:65535',
                'nullable'
            ]
        ];
    }
}
Run Code Online (Sandbox Code Playgroud)

ApiRequest

namespace App\Api\V1\Requests;

use …
Run Code Online (Sandbox Code Playgroud)

laravel laravel-5 laravel-request laravel-response laravel-5.5

6
推荐指数
1
解决办法
4668
查看次数

Laravel 5.8 自定义表单请求未按预期工作?

我创建了一个ClientStoreRequest使用以下代码命名的自定义表单请求:

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class ClientStoreRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
        // return  $this->user()->can('add-clients');
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'name' => 'required|unique:clients|max:255',
            'website' => 'required|url',
            'street' => 'required',
            'town' => 'required',
            'postcode' => 'required|max:8',
            'county' => 'required', …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-5 laravel-request laravel-5.8

5
推荐指数
1
解决办法
2415
查看次数