Laravel isEmpty 不起作用

Rus*_*Sk. 2 php laravel

当我尝试使用 isEmpty 函数检查模型是否为空时,Laravel 5.6 中出现错误。

模型:

namespace App\Models\Projectmanagement;

use Illuminate\Database\Eloquent\Model;

class Projects extends Model
{
    protected $table = 'projects';
    public $timestamps = false;
}
Run Code Online (Sandbox Code Playgroud)

控制器:

public function create()
{
    $project = new Projects;
    return view('pages.projectmanagement.projects.edit', [
        'project' => $project,
        'companies' => Company::all(),
    ]);
}
Run Code Online (Sandbox Code Playgroud)

看法:

<form method="post">
  {{ csrf_field() }}
  @if($project->isEmpty())
      @method('PUT')
   @endif
</form>
Run Code Online (Sandbox Code Playgroud)

这个想法是我重用 edit.blade 视图文件来创建和更新数据,所以我需要检查模型是否为空以在视图文件中进行适当的更改。

但是在这种情况下,Laravel 5.6 会抛出一个错误:

Method Illuminate\Database\Query\Builder::isEmpty does not exist. (View: /var/www/resources/views/pages/projects/edit.blade.php)
Run Code Online (Sandbox Code Playgroud)

Lae*_*rte 5

另一种方法是使用Model exists变量。例如:

//Case 1
$project = new Projects;
$project->exists; //Has false

//Case 2
$project = Projects::first();
$project->exists; //Has true
Run Code Online (Sandbox Code Playgroud)

参考:https : //laravel.com/api/5.6/Illuminate/Database/Eloquent/Model.html