laravel 5.5的变化是否也反映了刀片

时间:2018-01-23 22:33:17

标签: laravel

我目前正在将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..
}

1 个答案:

答案 0 :(得分:3)

从版本5.4到5.5

中没有任何变化

session() - &gt;有('成功')

$错误 - &的至少一个具有( '电子邮件')

$请求 - &GT; hasFile( '图像')

从版本5.4更改为5.5

$请求 - &的至少一个具有( '某物');

  

以下源代码来自官方github标签

以下是Illuminate\Http(针对$ request)

http has()方法已更改

来自5.4

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()是相同的

来自5.4

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)

来自5.4

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;
}