2015-02-19 27 views
6

Vì vậy, trong L5 tôi tạo thư mục như app/Models/Blog đâu là tập tin Posts.php trông giống như:Làm thế nào để gọi các mô hình trong Laravel 5?

<?php namespace App\Models\Blog; 

use Illuminate\Database\Eloquent\Model; 

class Posts extends Model { 
    protected $table = 'posts'; 
} 

Sau đó tôi thực hiện composer dump và sau đó trong bộ điều khiển của tôi:

namespace App\Http\Controllers; 

use App\Http\Controllers\Controller; 
use Models\Blog\Posts as Posts; 

class BlogController extends Controller { 

    public function index() 
    { 
     $post = Posts::all()->toArray(); 

     dd($post); 
    } 
} 

Nó ném cho tôi một lỗi:

FatalErrorException in BlogController.php line 14: Class 'Models\Blog\Posts' not found 

Trả lời

13

Hãy thử thay đổi này:

use Models\Blog\Posts as Posts; 

Để này:

use App\Models\Blog\Posts; 
+0

oh, tôi không chú ý ... Cảm ơn – user1692333

0

Thay đổi sau

class Posts extends Model { 

để

class Posts extends \Eloquent { 
+0

Tôi đang sử dụng L5, không L4 – user1692333

+0

Tôi xin lỗi. Tôi đọc nó nhanh. Bạn đã quên không gian tên trước đường dẫn (mặc định là ứng dụng). – maartenpaauw

1

Trong Laravel 5.2 nó chỉ:

use App\Blog; 

hoặc

use App\Blog\Posts; 
0

Bạn cần phải kiểm tra hai điểm:

  1. các namespace đã được trong đầu tiên
  2. bằng cách sử dụng phải use App\Models\Blog trong trường hợp của bạn

Li ke này:

<?php 
namespace App\Http\Controllers; 

use App\Http\Controllers\Controller; 
use App\Models\Blog; 

class BlogController extends Controller { 

    public function index() 
    { 
     $post = Posts::all()->toArray(); 

     dd($post); 
    } 
} 

(thử nghiệm với Laravel 5.4)

Các vấn đề liên quan