Controller php 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:

Источник

Читайте также:  Python join list with separator

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

Читайте также:  Php function arguments object

При попытке сделать по инструкции

$ 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

И посмотреть выведет что или даст ошибку

Читайте также:  Png to json python

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.

Источник

Оцените статью