【发布时间】:2016-01-11 10:53:38
【问题描述】:
我在将 laravel 5 查询构建器用于员工管理系统时遇到问题。这是我的员工控制器
<?php
namespace App\Http\Controllers;
use App\Employee;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class EmployeesController extends Controller
{
public function index()
{
// $employees = Employee::all();
// return view('employees.index', compact('employees'));
$employees = DB::table('employees')->get();
return view('employees.index', compact('employees'));
}
}
当我使用注释掉的代码时,视图工作,我可以看到我的员工列表
$employees = Employee::all();
return view('employees.index', compact('employees'));
我在这里看到了answer,我按照建议做了,但没有运气。我添加了使用数据库;在命名空间声明之后,还尝试了带有
的代码$employees = \DB::table('employees')->get();
但它会引发另一个错误,即在第 6 行对非对象调用成员函数 count()。 我什至将 DB.php 文件从 C:\xampp\htdocs\laravel5project\vendor\laravel\framework\src\Illuminate\Support\Facades 复制到 App 文件夹(C:\xampp\htdocs\laravel5project\app)但仍然没有运气。 我也尝试过明确地给它命名空间
use Illuminate\Support\Facades\DB
这里是风景
@extends('layouts.default')
@section('PageTitle', 'Employee List')
@section('content')
@if ( !$employees->count() )
There are no Employees!
@else
<table id="tblEmployee" class="table table-striped table-bordered" cellspacing="0" width="100%">
<thead>
<tr>
<th>Name</th>
</tr>
</thead>
<tbody>
@foreach( $employees as $employee )
<tr>
<td>{{$employee->Name}}</td>
</tr>
@endforeach
</tbody>
</table>
@endif
@endsection
可能是什么问题?
【问题讨论】:
-
你想在哪里使用
->count()?我在您的代码中没有看到它。此外,如果您尝试在null对象上调用->count(),您将收到该错误。此外,使用\DB将消除标题中的错误。这是一个命名空间问题,可以通过使用 \.不幸的是,您随后又遇到了另一个错误,但它们有些无关。 -
刚刚包含了对问题的看法
-
嗯,你是对的。给我带来问题的是视图上的计数功能。