如何确定发出请求的页面的路径?
我试过$request->path()或者Request::path()这两个返回请求的路径..
我想json_encode($request->all())在提交表单后运行,但是返回的数组被"污染"了_method和_token值.
有没有任何巧妙的方法从生成的json中排除特定于框架的字段?
我想从传入控制器的请求参数中删除现有项目。
这是我的控制器:
public function getIndex(Request $request)
{
// I need to remove a parameter from the $request here.
}
Run Code Online (Sandbox Code Playgroud)
实际上,我想在控制器中发送一个请求,但是当我创建一个这样的新实例时Request,
$new_request = new Request();
Run Code Online (Sandbox Code Playgroud)
并添加一些字段,$new_request如下所示:
$request->request->add([
'id' => '2',
'name' => 'test'
]);
Run Code Online (Sandbox Code Playgroud)
什么都没有添加!并且 dispatch 方法无法产生空请求的正确响应!但是当我使用现有的路由请求时,一切都好,除了额外的项目,我应该摆脱它们!
我有要求更新页面.添加新页面请求时如下:
'title'=>'required|max:70|unique:pages',
Run Code Online (Sandbox Code Playgroud)
但是当我更新页面标题必须是唯一的但需要检查除已经输入的所有其他标题.我在谷歌搜索了所有可能的解决方案,但没有任
我试过了:
'title'=>"required|max:70|unique:pages, title,{$this->id}",
'title'=>'required|max:70|unique:pages, title,'.$this->id,
'title'=>'required|max:70|unique:pages, title,'.$this->input('id'),
Run Code Online (Sandbox Code Playgroud)
规则是内部规则方法
public function rules()
{
return [
'title'=>'required|max:70|unique:pages, title,'.$this->id,
...
]
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
SQLSTATE[42S22]: Column not found: 1054 Unknown column ' title' in 'where clause' (SQL: select count(*) as aggregate from `pages` where ` title` = test and `id` <> )
Run Code Online (Sandbox Code Playgroud)
在我的mysql中,我有id(小写)列,它是主键和标题列(也是小写).
我正在使用Laravel开发Web应用程序。我现在正在做的是为验证创建一个FirmRequest。
这是我的FormRequest。
use Illuminate\Foundation\Http\FormRequest;
class StoreVacancy extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'title' => 'required',
'type' => 'required',
'complex_field' => ...need complex conditional validation based on the type field
];
}
}
Run Code Online (Sandbox Code Playgroud)
如果不使用FormRequest,则可以在控制器中创建验证器,并设置复杂的条件验证规则,如下所示。
$v = Validator::make($data, [
//fields and rules
]);
$v->sometimes('reason', 'required|max:500', function ($input) {
return $input->games >= 100;
});
Run Code Online (Sandbox Code Playgroud)
但是问题是我没有在控制器中创建验证器。但是我正在使用FormRequest。如何在FormRequest中实现同一目的?