- Saved searches
- Use saved searches to filter your results more quickly
- Missing the namespace #27983
- Missing the namespace #27983
- Comments
- Description:
- Steps To Reproduce:
- Suggestion:
- Yii Framework
- Re: помогите разобраться с namespace
- Re: помогите разобраться с namespace
- Re: помогите разобраться с namespace
- Re: помогите разобраться с namespace
- Re: помогите разобраться с namespace
- Yii не находит класс в контроллере. В чем может быть проблема?
- Yii Framework
- Re: Unknown Class. Namespace missing?
- Re: Unknown Class. Namespace missing?
- Re: Unknown Class. Namespace missing?
- Re: Unknown Class. Namespace missing?
- Re: Unknown Class. Namespace missing?
- Re: Unknown Class. Namespace missing?
- Re: Unknown Class. Namespace missing?
- Re: Unknown Class. Namespace missing?
- Re: Unknown Class. Namespace missing?
- Re: Unknown Class. Namespace missing?
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Missing the namespace #27983
Missing the namespace #27983
Comments
Description:
Route::namespace('Admin')->get('/','IndexController@index');
I thought it will be hit method index of App\Http\Controllers\Admin\IndexController .But in fact it hit the method index of App\Http\Controllers\IndexController. I read the code and found something wrong Maybe.
Steps To Reproduce:
$route = Route::namespace('Admin')->get('/','IndexController@index'); dd($route);
Route +uri: «/»
+methods: array:2 [ ▶ ]
+action: array:6 [▼
«middleware» => array:1 [ ▶ ]
«namespace» => «App\Http\Controllers\Admin»
«uses» => «App\Http\Controllers\IndexController@index» // missing namespace
«controller» => «App\Http\Controllers\IndexController@index» // missing namespace
«prefix» => null
«where» => []
]
.
>
The same things happend whe i used
Route::get('/',['namespace '=>'Admin','uses'=>IndexController@index']);
Ok,Let’s look at two more examples.
domain.com/admin will hit both below.And that is different from namespaces.
Route::prefix('admin')->get('/',IndexController@index'); Route::get('/',['prefix' => 'admin','uses' => 'IndexController@index');
Suggestion:
// Illuminate\Routing\Router.php line 502 protected function convertToControllerAction($action) < if (is_string($action)) < $action = ['uses' =>$action]; > // Here we'll merge any group "uses" statement if necessary so that the action // has the proper clause for this property. Then we can simply set the name // of the controller on the action and return the action array for usage. // Here I remove // if (! empty($this->groupStack)) < // $action['uses'] = $this->prependGroupNamespace($action['uses']); //> // And replace it with the codes below . And it works what i expect. if (!empty($this->groupStack)) < $action['uses'] = isset($action['namespace']) ? $this->prependGroupNamespace(trim($action['namespace'], '\\') . '\\' . $action['uses']) : $this->prependGroupNamespace($action['uses']); > // Here we will set this controller name on the action array just so we always // have a copy of it for reference if we need it. This can be used while we // search for a controller name or do some other type of fetch operation. $action['controller'] = $action['uses']; return $action; >
Forgive my English.I believe my Chinese will be better .It took me half an hour to write this.
Because I like this framework so much.So what u guys think.
The text was updated successfully, but these errors were encountered:
Yii Framework
Вот он как раз руками и пытался везде упростить ConvertgpxtomysqlForm до ConvertForm, поэтому в одном месте забыл «l» стереть. Очепятался.
Re: помогите разобраться с namespace
Сообщение zelenin » 2016.09.05, 21:35
rugabarbo Сообщения: 1063 Зарегистрирован: 2015.06.21, 16:21 Контактная информация:
Re: помогите разобраться с namespace
Сообщение rugabarbo » 2016.09.05, 21:37
Re: помогите разобраться с namespace
Сообщение evgeniy123 » 2016.09.05, 21:56
zelenin писал(а): автор, приведи оригинальный код — модель, контроллер, путь до обоих файлов. не парь нам мозги.
rugabarbo Сообщения: 1063 Зарегистрирован: 2015.06.21, 16:21 Контактная информация:
Re: помогите разобраться с namespace
Сообщение rugabarbo » 2016.09.05, 21:59
zelenin писал(а): автор, приведи оригинальный код — модель, контроллер, путь до обоих файлов. не парь нам мозги.
Вы бы лучше новым постом всё скинули. Исправляя что-то там в прошлых постах только всех запутываете ещё больше.
Более того, zelenin пути к файлам просил. Какие они?
Re: помогите разобраться с namespace
Сообщение evgeniy123 » 2016.09.05, 22:03
zelenin писал(а): автор, приведи оригинальный код — модель, контроллер, путь до обоих файлов. не парь нам мозги.
Вы бы лучше новым постом всё скинули. Исправляя что-то там в прошлых постах только всех запутываете ещё больше.
Более того, zelenin пути к файлам просил. Какие они?
Yii не находит класс в контроллере. В чем может быть проблема?
Пробую сделать RESTFull API на Yii2. До этого делал RESTFull только на ларавеле. Сначала решил попробовать по инструкции https://www.yiiframework.com/doc/guide/2.0/ru/rest. . Делаю в опенсервере. Установил версию basic. Страница index открылась, Gii тоже открылся. Подключил базу данных в конфиге. Далее по инструкции создал контроллер User в папке C:\OSPanel\domains\testYii2\controllers:
namespace app\controllers; use yii\rest\ActiveController; class UserController extends ActiveController
'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => [ ['class' => 'yii\rest\UrlRule', 'controller' => 'user'], ], ]
'request' => [ 'parsers' => [ 'application/json' => 'yii\web\JsonParser', ] ]
в файл C:\OSPanel\domains\testYii2\config\web.php
При попытке сделать по инструкции
$ curl -i «testyii2/users»
HTTP/1.1 200 OK
Date: Sat, 19 Dec 2020 14:56:56 GMT
Server: Apache
Content-Length: 2104
Content-Type: text/html; charset=UTF-8
class UserController extends ActiveController
public $modelClass = ‘app\models\User’;
>An Error occurred while handling another error:
yii\web\HeadersAlreadySentException: Headers already sent in C:\OSPanel\domains\testYii2\controllers\UserController.php on line 1. in C:\OSPanel\domains\testYii2\vendor\yiisoft\yii2\web\Response.php:370
Stack trace:
#0 C:\OSPanel\domains\testYii2\vendor\yiisoft\yii2\web\Response.php(343): yii\web\Response->sendHeaders()
#1 C:\OSPanel\domains\testYii2\vendor\yiisoft\yii2\web\ErrorHandler.php(136): yii\web\Response->send()
#2 C:\OSPanel\domains\testYii2\vendor\yiisoft\yii2\base\ErrorHandler.php(135): yii\web\ErrorHandler->renderException(Object(yii\base\UnknownClassException))
#3 [internal function]: yii\base\ErrorHandler->handleException(Object(yii\base\UnknownClassException))
#4
Previous exception:
yii\base\UnknownClassException: Unable to find ‘app\controllers\UserController’ in file: C:\OSPanel\domains\testYii2/controllers/UserController.php. Namespace missing? in C:\OSPanel\domains\testYii2\vendor\yiisoft\yii2\BaseYii.php:296
Stack trace:
#0 [internal function]: yii\BaseYii::autoload(‘app\\controllers. ‘)
#1 [internal function]: spl_autoload_call(‘app\\controllers. ‘)
#2 C:\OSPanel\domains\testYii2\vendor\yiisoft\yii2\base\Module.php(637): class_exists(‘app\\controllers. ‘)
#3 C:\OSPanel\domains\testYii2\vendor\yiisoft\yii2\base\Module.php(596): yii\base\Module->createControllerByID(‘user’)
#4 C:\OSPanel\domains\testYii2\vendor\yiisoft\yii2\base\Module.php(522): yii\base\Module->createController(‘index’)
#5 C:\OSPanel\domains\testYii2\vendor\yiisoft\yii2\web\Application.php(104): yii\base\Module->runAction(‘user/index’, Array)
#6 C:\OSPanel\domains\testYii2\vendor\yiisoft\yii2\base\Application.php(392): yii\web\Application->handleRequest(Object(yii\web\Request))
#7 C:\OSPanel\domains\testYii2\web\index.php(12): yii\base\Application->run()
#8
То есть не находит контроллер UserController?
Previous exception:
yii\base\UnknownClassException: Unable to find ‘app\controllers\UserController’ in file: C:\OSPanel\domains\testYii2/controllers/UserController.php. Namespace missing? in C:\OSPanel\domains\testYii2\vendor\yiisoft\yii2\BaseYii.php:296
Не может ли это быть из за разных слешей:
Yii Framework
Unable to find ‘app\components\Helper’ in file: /home/project/yii/basic/components/Helper.php. Namespace missing?
1. в config/web.php в components добавил
'helper' => [ 'class' => 'app\components\Helper', ],
2. в контроллер добавил строчку use app\components\Helper;
3. создал файл components/Helper.php с таким содержанием
namespace app\components; use Yii; use yii\base\Component; use yii\base\InvalidConfigException; class Helper extends Component
4. в экшене вызываю вот так
Yii::$app->helper; // именно тут и возникает ошибка
В чем проблема? Подскажите новичку, пожалуйста.
Re: Unknown Class. Namespace missing?
Сообщение Onotole » 2016.05.05, 10:31
Re: Unknown Class. Namespace missing?
Сообщение zelenin » 2016.05.05, 10:49
Re: Unknown Class. Namespace missing?
Сообщение lgXenos » 2016.05.05, 15:32
include($classFile); if (YII_DEBUG && !class_exists($className, false) && !interface_exists($className, false) && !trait_exists($className, false))
Т.е. он пытается подключить файл и потом найти в переменных у себя класс или трет или интерфейс
1. у тебя нет такого файла как /home/project/yii/basic/components/Helper.php
Попробуй в консоли написать
cat /home/project/yii/basic/components/Helper.php
И посмотреть выведет что или даст ошибку
2. Посмотреть что непосредственно в этом файле )
Re: Unknown Class. Namespace missing?
Сообщение Onotole » 2016.05.05, 15:33
Re: Unknown Class. Namespace missing?
Сообщение Onotole » 2016.05.05, 15:34
include($classFile); if (YII_DEBUG && !class_exists($className, false) && !interface_exists($className, false) && !trait_exists($className, false))
Т.е. он пытается подключить файл и потом найти в переменных у себя класс или трет или интерфейс
1. у тебя нет такого файла как /home/project/yii/basic/components/Helper.php
Попробуй в консоли написать
cat /home/project/yii/basic/components/Helper.php
И посмотреть выведет что или даст ошибку
2. Посмотреть что непосредственно в этом файле )
Файл есть, иначе yii ругался бы на другое. У него с неймспейсами проблема.
Возможно у него advanced шаблон
Re: Unknown Class. Namespace missing?
Сообщение zelenin » 2016.05.05, 15:35
include($classFile); if (YII_DEBUG && !class_exists($className, false) && !interface_exists($className, false) && !trait_exists($className, false))
Т.е. он пытается подключить файл и потом найти в переменных у себя класс или трет или интерфейс
1. у тебя нет такого файла как /home/project/yii/basic/components/Helper.php
Попробуй в консоли написать
cat /home/project/yii/basic/components/Helper.php
И посмотреть выведет что или даст ошибку
2. Посмотреть что непосредственно в этом файле )
если бы не было файла, то ругнулся бы на стадии инклуда. такая ошибка возникает, когда файл подключен, а внутри не тот класс, который вызван (неймспейс не совпадает/отсутствует или имя класса).
Re: Unknown Class. Namespace missing?
Сообщение lgXenos » 2016.05.05, 15:40
zelenin писал(а): такая ошибка возникает, когда файл подключен, а внутри не тот класс, который вызван (неймспейс не совпадает/отсутствует или имя класса).
Re: Unknown Class. Namespace missing?
Сообщение zelenin » 2016.05.05, 15:45
а) на форуме этот вопрос озвучивался неоднократно
б) я не написал ничего, чего нет в тексте самой ошибки
Re: Unknown Class. Namespace missing?
Сообщение lgXenos » 2016.05.05, 16:04
Иногда я удивляюсь, что у программистов этого форума еще не появилось FAQ, Wiki, персонального блога или иного сервиса, который бы отвечал на вопросы, которые поднимаются неоднократно.
Я тут третий день, а оказывается, что на все вопросы уже отвечали и больше ответов не будет
Кстати, вопрос про мои сценарии тоже уже превысил квоту ответов?
http://www.yiiframework.ru/forum/viewto . 19&t=36639
Re: Unknown Class. Namespace missing?
Сообщение zelenin » 2016.05.05, 16:11
Иногда я удивляюсь, что у программистов этого форума еще не появилось FAQ, Wiki, персонального блога или иного сервиса, который бы отвечал на вопросы, которые поднимаются неоднократно.
меня удивляет почему нельзя текст ошибки тупо в гугл вбить — там куча ссылок именно по этому вопросу https://www.google.ru/search?client=ubu . zAW0hoiwAw
тупо и лень отвечать на справочные вопросы. форум должен быть для обсуждения интересных вопросов и для обмена опытом, а не для прокладки между дебилом и гуглом.
lgXenos писал(а): Кстати, вопрос про мои сценарии тоже уже превысил квоту ответов?
http://www.yiiframework.ru/forum/viewto . 19&t=36639
я видел тему. сценарии якобы прикольная тема, а на самом деле заморочная, и те, кто их юзает, «сам себе злобный Буратино». Поэтому по сценариям вопросов на форуме очень мало, т.к. их никто не юзает. слишком yii-specific.