2015-10-13 4 views
6

मुझे कर्मचारी प्रबंधन प्रणाली के लिए लार्वेल 5 क्वेरी बिल्डर का उपयोग करने में समस्या है। यहाँ मेरी EmployeesControllerकक्षा 'ऐप एचटीपी नियंत्रक डीबी' लार्वेल में नहीं मिला 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. पर मैं भी db.php फ़ाइल की प्रतिलिपि करने के लिए कॉल कहते हैं फेंकता सी से: \ xampp \ htdocs \ laravel5project \ विक्रेता \ laravel \ framework \ src \ ऐप फ़ोल्डर (सी: \ xampp \ htdocs \ laravel5project \ ऐप) के लिए \ Support \ Illadesinate \ Support \ लेकिन फिर भी कोई भाग्य नहीं है। मैं भी स्पष्ट रूप से इसे नाम स्थान

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 

क्या समस्या हो सकती है है देने के लिए कोशिश की है?

+1

आप कहां से '-> गिनती() 'का उपयोग करने की कोशिश कर रहे हैं? मैं इसे आपके कोड में नहीं देखता हूं। साथ ही, यदि आप 'null' ऑब्जेक्ट पर' -> गिनती() 'को कॉल करने का प्रयास करते हैं, तो आपको वह त्रुटि मिल जाएगी। भी, '\ DB' का उपयोग करके आपके शीर्षक में त्रुटि से छुटकारा पड़ेगा। यह एक नेमस्पेसिंग समस्या है जिसे \ का उपयोग करके हल किया जाता है। यह दुर्भाग्यपूर्ण है कि बाद में आपको एक और त्रुटि का सामना करना पड़ा, लेकिन वे कुछ हद तक असंबंधित हैं। –

+0

बस प्रश्न – user3659497

+0

पर विचार शामिल है ठीक है, आप सही थे। यह विचार पर गिनती समारोह था जो मुझे समस्याएं दे रहा था। – user3659497

उत्तर

15

DB आपके वर्तमान नेमस्पेस App\Http\Controllers में नहीं है। तो अगर आप शीर्ष

use DB; 

पर आयात कर सकते हैं या एक बैकस्लैश \DB::table(...) के साथ पूर्व में होना कर सकते हैं। यह कक्षा को अपवाद नहीं मिला हल करता है।

हालांकि आपको कर्मचारी मॉडल का लार्वा संग्रह नहीं मिला है लेकिन डेटाबेस पंक्तियों की एक सरणी है। Arrays ऐसी ऑब्जेक्ट्स नहीं हैं जिनके पास गिनती() फ़ंक्शन है जिसके परिणामस्वरूप आपकी अंतिम त्रुटि होती है।

अद्यतन: लैरावेल 5.3 संग्रह संग्रह वापस करेगा, एक सरणी नहीं। तो गिनती() उस पर काम करेगा।

संबंधित मुद्दे