我正在努力使用该sortBy()方法对Eloquent集合进行排序.问题是排序区分大小写,它首先检索大写结果,然后检索小写结果,但我想要实现的是对每个项目进行排序,无论它是大写还是小写.
我有一个包含一些字段的表单,我想使用Laravel的validate()方法进行验证.
public function postSomething(Request $req) {
...
$this->validate($req, [
'text_input' => 'required',
'select_input' => 'required'
]);
...
}
Run Code Online (Sandbox Code Playgroud)
问题是,如果提交表单而未从选择输入中选择选项,则会在请求中忽略该表单,并且Laravel不会对其进行验证,尽管它已使用required验证规则添加到规则集中.正在验证空文本输入.
+request: ParameterBag {#42 ?
#parameters: array:1 [?
"text_input" => ""
"_token" => "TCDqEi2dHVQfmc9HdNf8ju1ofdUQS6MtDBpUMkl7"
]
}
Run Code Online (Sandbox Code Playgroud)
如您所见,select_input如果请求参数为空,则缺少该参数.
这是我的选择输入的HTML代码:
<select class="form-control" name="select_input">
<option disabled selected>Please select...</option>
<option value="val1">Value 1</option>
<option value="val2">Value 2</option>
</select>
Run Code Online (Sandbox Code Playgroud)
有没有办法使规则集中的所有字段的验证工作,即使它们中的某些字段不在请求中?
从Laravel 5.1验证文档:
需要
验证字段必须存在于输入数据中而不是空的.一个字段被认为是"空"是下列条件之一为真:该值为空.该值为空字符串.该值为空数组或空Countable对象.该值是没有路径的上载文件.
PS我正在使用Laravel 5.1,所以present方法不可用.
所以我有一个产品集合($this->products)我得到的模型查询的结果,我想通过它的一些属性值过滤它.问题是Laravel没有像Eloquent那样orWhere的集合方法来查询模型.另外我想使用LIKE %{$searching_for}%通配符,我不知道如何使用它(如果可能的话)来过滤我的集合.
这是我试图过滤我的集合的代码,显然抛出了Exception该orWhere方法不存在:
$products = $this->products
->where("field1", "LIKE %{$searching_for}%")
->orWhere("field2", "LIKE", "%{$searching_for}%")
->orWhere("field3", "LIKE", "%{$searching_for}%")
->orWhere("field4", "LIKE", "%{$searching_for}%");
Run Code Online (Sandbox Code Playgroud)
我想直接查询模型,但我只是将$products集合存储在Session中,这样我就可以在任何需要的地方使用它,我不想经常查询数据库所以我正在寻找一种解决方案以某种方式过滤现有的采集.
如何在提交编辑地址表单后将用户重定向到自定义URL?例如,我想将用户重定向到他的帐户(我的帐户)而不是my-account/edit-address.
先感谢您!
laravel ×3
php ×3
laravel-5 ×2
eloquent ×1
laravel-5.1 ×1
sorting ×1
validation ×1
woocommerce ×1
wordpress ×1