2013-05-12 3 views
-4

Я пытался понять, как реализовать разделение проблем в документации Laravel на странице Models & Libraries. Я переименовал папку моих моделей в «malice» (имя компьютера моего компьютера), чтобы имитировать переименование, как это говорится на сайте.Laravel - Пользовательский класс не найден Исключение

Я понимаю, что класс не может быть найден, но это мой первый раз, когда я использовал Laravel и первый раз когда-либо слышал о «разделении проблем», поэтому, пожалуйста, будьте терпеливы со мной. :)

Вот что у меня есть:

// application/malice/entities/user.php 
<?php namespace Malice\Entities; 

class User { 

    public $name; 

    public function __construct($name){ 
     $this->name = $name; 
    } 

} 

// application/malice/services/user_doit.php 
<?php namespace Malice\Services; 

use Malice\Entities\User; 

class User_Doit { 

    public static function introduce(User $name){ 
     return "Hi, I'm {$name}"; 
    } 

} 

Когда я бегу в моем контроллере:

$user = new User(); 
krumo($user); // I'm using krumo isntead of print_r 

Это все, что я получаю:

Unhandled Exception 

Message: 

Class 'User' not found 
Location: 

D:\xampp\virtual\laravel\application\controllers\test.php on line 29 

Обновление:

Это то, что мой start.php в настоящее время выглядит следующим образом:

Autoloader::directories(array(
    // path('app').'models', 
    path('app').'libraries', 
)); 

Autoloader::namespaces(array(
    'Malice' => path('app').'malice' 
)); 
+0

Вы настроили автозагрузку каталогов в 'application/start.php'? –

+0

Я не знал, что должен был. Но после переименования его в «путь (« приложение »).« Malice », он все равно не работает. Если бы только документы для этого были не такими голыми, это было бы здорово. Это похоже на то, что он говорит вам, что он может сделать, чтобы показать, а затем убегает, прежде чем вы сможете задать вопрос. – enchance

+0

Поскольку вы используете пространство имен, вам может понадобиться использовать 'Autoloader :: namespaces (array ('Malice' => path ('app'). 'Malice'));' –

ответ

0

Вы не должны использовать: новые Malice \ Entities \ User, а не просто нового пользователя?

Смежные вопросы