Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 23.11.2015 15:34:04

Доступ из php скрипта к модели

Здравствуйте!

Есть задача: получить доступ из скрипта, который лежит в папке public, к модели, класс которой лежит в php файле в папке App\AutoParts.

Видимо, я не понимаю концепцию namespace.

Вот содержимое скрипта

<?php

use App\AutoParts;

$adverts = AutoParts::all();

?>

Сама модель содержится в пространстве имен namespace App.

Вот ее заголовок:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

При исполнении скрипта выводится следующее:

Fatal error: Class 'App\AutoParts' not found in C:\xampp\htdocs\auto_parts\public\autoparts.php on line 6

Я прочитал о ServiceContainer, но если правильно понял, то он подключает, наоборот, "свои" классы к Laravel проекту.

Указание в скрипте namespace App не решает проблему.

Не в сети

#2 23.11.2015 18:14:08

zpnick

Re: Доступ из php скрипта к модели

В скрипт желательно добавить namespace
<?php
namespace public;
use App\AutoParts;
$adverts = AutoParts::all();

В модели тоже нужно подправить namespace
<?php
namespace App\AutoParts;
use Illuminate\Database\Eloquent\Model;

Ну и если вдруг надумаете формировать класс в скрипте, то нужно добавить путь к нему в composer.json раздел "autoloads" → "classmap", т.е дописать public, выглядеть будет примерно так:
    "autoload": {
        "classmap": [
            "database",
            "public"
        ],
И запустить для закрепления composer dump-autload, это если всё таки пришлось редактировать composer.json

#3 24.11.2015 11:01:07

Re: Доступ из php скрипта к модели

Благодарю за помощь. Попробую и отпушись о результате)

Не в сети

#4 24.11.2015 11:16:22

Re: Доступ из php скрипта к модели

К сожалению, результат прежний.

При написании

namespace public;

ide ругается, а при компиляции вот такая ошибка возникает:

Parse error: syntax error, unexpected 'public' (T_PUBLIC), expecting identifier (T_STRING) or \\ (T_NS_SEPARATOR) or '{' in C:\xampp\htdocs\auto_parts\public\autoparts.php on line 3

namespace модели подправил на предложенный.

Не в сети

#5 24.11.2015 12:27:19

Re: Доступ из php скрипта к модели

А если так:

<?php

use \App\AutoParts;

$adverts = AutoParts::all();

?>

Не в сети

#6 26.11.2015 11:33:36

Re: Доступ из php скрипта к модели

К сожалению, время поджимало, пришлось в обход идти.

Но для интереса попробую и отпишусь, спасибо.

Не в сети

Подвал раздела