我目前正在将Laravel 5.4升级到5.5,我看到了这个:
有方法
即使输入值为空字符串或null,$request->has
方法现在也将返回true。添加了一个新的$request->filled
方法,该方法提供了has方法的先前行为。
这是否也适用于刀片文件?
例如
<div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
@if(session()->has('success'))
<script type="text/javascript">x</script>
@endif
它也会影响文件吗?例如
if ($request->hasFile('images') == false) {
//No image..
}
答案 0 :(得分:3)
从版本5.4到5.5
中没有任何变化session() - &gt;有('成功')
$错误 - &的至少一个具有( '电子邮件')
$请求 - &GT; hasFile( '图像')
从版本5.4更改为5.5
$请求 - &的至少一个具有( '某物');
以下源代码来自官方github标签
以下是Illuminate\Http
(针对$ request)
http has()
方法已更改
has()
/**
* Determine if the request contains a non-empty value for an input item.
*
* @param string|array $key
* @return bool
*/
public function has($key)
{
$keys = is_array($key) ? $key : func_get_args();
foreach ($keys as $value) {
if ($this->isEmptyString($value)) {
return false;
}
}
return true;
}
来自5.5 的 has()
/**
* Determine if the request contains a given input item key.
*
* @param string|array $key
* @return bool
*/
public function has($key)
{
$keys = is_array($key) ? $key : func_get_args();
$input = $this->all();
foreach ($keys as $value) {
if (! Arr::has($input, $value)) {
return false;
}
}
return true;
}
hasFile()
是相同的
hasFile()
/**
* Determine if the uploaded data contains a file.
*
* @param string $key
* @return bool
*/
public function hasFile($key)
{
if (! is_array($files = $this->file($key))) {
$files = [$files];
}
foreach ($files as $file) {
if ($this->isValidFile($file)) {
return true;
}
}
return false;
}
来自5.5 的 hasFile()
/**
* Determine if the uploaded data contains a file.
*
* @param string $key
* @return bool
*/
public function hasFile($key)
{
if (! is_array($files = $this->file($key))) {
$files = [$files];
}
foreach ($files as $file) {
if ($this->isValidFile($file)) {
return true;
}
}
return false;
}
以下是Illumnate\Session
(适用于session()
)
会话has()
方法相同
来自5.4
/**
* Checks if a key is present and not null.
*
* @param string|array $key
* @return bool
*/
public function has($key)
{
return ! collect(is_array($key) ? $key : func_get_args())->contains(function ($key) {
return is_null($this->get($key));
});
}
来自5.5 的会话
/**
* Checks if a key is present and not null.
*
* @param string|array $key
* @return bool
*/
public function has($key)
{
return ! collect(is_array($key) ? $key : func_get_args())->contains(function ($key) {
return is_null($this->get($key));
});
}
以下是Illuminate\Support
的MessageBag.php(对于$ errors)
has()
/**
* Determine if messages exist for all of the given keys.
*
* @param array|string $key
* @return bool
*/
public function has($key)
{
if (is_null($key)) {
return $this->any();
}
$keys = is_array($key) ? $key : func_get_args();
foreach ($keys as $key) {
if ($this->first($key) === '') {
return false;
}
}
return true;
}
来自5.5 的 has()
/**
* Determine if messages exist for all of the given keys.
*
* @param array|string $key
* @return bool
*/
public function has($key)
{
if (is_null($key)) {
return $this->any();
}
$keys = is_array($key) ? $key : func_get_args();
foreach ($keys as $key) {
if ($this->first($key) === '') {
return false;
}
}
return true;
}