Форум программистов, компьютерный форум, киберфорум
PHP: Yii, Yii2
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 3
Регистрация: 30.05.2016
Сообщений: 171

В Yii ненаходит адрес url

31.07.2016, 16:15. Показов 2169. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делаю по видеуроку мини админ-панель,например просто адрес, работает http://lesson1/site/about , но когда ввожу адрес админ-панели такой http://lesson1/admin/default/create то такая ошибка:

Все сделал как и по уроку все файлы в нужных папках. Module.php сгенерировал в gii значение, то есть должно работать всё.Может что-то надо прописать в роутинге но я не знаю что помогите плиз.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.07.2016, 16:15
Ответы с готовыми решениями:

Yii и URL
Насколько я понял, Yii весь целиком завязан на url, исходя из него он выбирает контроллер и экшн, т.е. получается мы не можем создавать...

Создание собсвенных URL в Yii
Я хочу в своём приложении создать правила для URL, чтобы некая произвольная ссылка обрабатывалась, как controller/action/id. Например, URL...

Как в yii сформировать url в ajax?
Добрый день, Такая проблема, не получается получить данные в actionaddToCart($code, $count){ ... } Ajax такой:

16
0 / 0 / 3
Регистрация: 30.05.2016
Сообщений: 171
31.07.2016, 18:01  [ТС]
папка с админ панелью находится в папке modules
0
 Аватар для php10
146 / 105 / 44
Регистрация: 30.04.2016
Сообщений: 550
31.07.2016, 20:11
а где сам Yii2? папка админ должна лежать в папке modules, а та в свою очередь должна лежать в корне папки yii2. Вы не туда ее положили)
0
0 / 0 / 3
Регистрация: 30.05.2016
Сообщений: 171
01.08.2016, 08:20  [ТС]
Не, я туда положил, yii2 находится в папке lesson1, там же в корне и папка modules, а в ней папка админ.

Может что-то в роутинге прописать что б модуль админ панели включился как-то?
0
 Аватар для php10
146 / 105 / 44
Регистрация: 30.04.2016
Сообщений: 550
01.08.2016, 08:44
А вы модуль подключили через web.php в секции Modules?

PHP
1
2
3
4
5
 'modules' => [
        'admin' => [
            'class' => 'app\modules\admin\Module'
        ]
    ]
Можете файл Module.php показать?
0
0 / 0 / 3
Регистрация: 30.05.2016
Сообщений: 171
01.08.2016, 12:30  [ТС]
файл config/web.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
 
$params = require(__DIR__ . '/params.php');
 
$config = [
    'id' => 'basic',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'components' => [
        'request' => [
            // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
            'cookieValidationKey' => 'hehhegerh',
            'baseUrl' =>'',
        ],
        'cache' => [
            'class' => 'yii\caching\FileCache',
        ],
        'user' => [
            'identityClass' => 'app\models\User',
            'enableAutoLogin' => true,
        ],
        'errorHandler' => [
            'errorAction' => 'site/error',
        ],
       
        'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            // send all mails to a file by default. You have to set
            // 'useFileTransport' to false and configure a transport
            // for the mailer to send real emails.
            'useFileTransport' => true,
        ],
        'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
        
        'db' => require(__DIR__ . '/db.php'),
              'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
               '<module:\w+>/<controller:\w+>/<action:\w+>/<id:\d+>' => '<module>/<controller>/<action>'
            ],
        ],
       'assetManager' => [
    'basePath' => '@webroot/assets',
    'baseUrl' => '@web/assets'
],
    ],
    
    'params' => $params,
];
 
if (YII_ENV_DEV) {
    // configuration adjustments for 'dev' environment
    $config['bootstrap'][] = 'debug';
    $config['modules']['debug'] = [
        'class' => 'yii\debug\Module',
    ];
 
    $config['bootstrap'][] = 'gii';
    $config['modules']['gii'] = [
        'class' => 'yii\gii\Module',
    ];
}
 
return $config;
файл modules/admin/Module.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
 
namespace app\modules\admin;
 
/**
 * admin module definition class
 */
class Module extends \yii\base\Module
{
    /**
     * @inheritdoc
     */
    public $controllerNamespace = 'app\modules\admin\controllers';
 
    /**
     * @inheritdoc
     */
    public function init()
    {
        parent::init();
        
        // custom initialization code goes here
    }
}
Добавлено через 1 минуту
А в какой файл и на какую строчку вставить ваш код:?
PHP
1
2
3
4
5
 'modules' => [
        'admin' => [
            'class' => 'app\modules\admin\Module'
        ]
    ]
B web.php нету раздела module
0
 Аватар для php10
146 / 105 / 44
Регистрация: 30.04.2016
Сообщений: 550
01.08.2016, 13:53
Спрашыватель, так создайте))) допишите после 'params' => $params, мой код
1
0 / 0 / 3
Регистрация: 30.05.2016
Сообщений: 171
01.08.2016, 19:09  [ТС]
Спасибо помогло.Вот только у меня админ-панель есть

и там создание,редактирование и удаление записи из базы данных.Работает только удаление, а редактирование и создание не работает.Например хочу создать или редактировать,прописал в инпуте слово, нажал на submit и пишет проверка формы- что поле не может быть пустым и поэтому и не работает создание и редактирование.
Контроллер
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
namespace app\modules\admin\controllers;
 
use yii\web\Controller;
use yii;
use app\models\MyList;
class DefaultController extends Controller
{
    public function actionIndex()
    {
        $array=MyList::getAll();
        return $this->render('index',['model'=>$array]);
    }
    public function actionEdit($id){
        $one=MyList::getOne($id);
        if($_POST['MyList']){
            $one->title=$_POST['Mylist']['title'];
            $one->description=$_POST['Mylist']['description'];
            //$one->attributes=$_POST['Mylist'];
            if($one->validate() && $one->save()){
                return $this->redirect(['index']);
            }
        }
        return $this->render('edit',['one'=>$one]);
    }
    public function actionCreate(){
        $model=new MyList();
 
        if($_POST['MyList']){
            $model->title=$_POST['Mylist']['title'];
            $model->description=$_POST['Mylist']['description'];
            //$model->attributes=$_POST['Mylist'];
            if($model->validate() && $model->save()){
                return $this->redirect(['index']);
            }
        }
        return $this->render('create',['model'=>$model]);
 
    }
    public function actionDelete($id){
        $model=MyList::getOne($id);
        $model->delete();
        return $this->redirect(['index']);
    }
}
модель файл Mylist.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php 
namespace app\models;
 
class MyList extends \yii\db\ActiveRecord{
 
public function rules(){
    return [
    [['title','description'],'required'],
    ];
}
public  static function tableName(){
 
    return 'list';
 
}
public static function getAll()
{
 
        $data = self::find()
        ->all();
        return $data;
}
public static function getOne($id)
{
 
        $data = self::find()
        ->where(['id'=>$id])
        ->one();
        return $data;
}
 
}
вид редактирование, файл edit.php
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
?>
<h1>Редактировать</h1>
<?php $form = ActiveForm::begin(); ?>
<div class="row">
    <div class="col-md-6">
        <?=$form->field($one,'title')->textInput() ?>
    </div>
    <div class="col-md-6">
        <?=$form->field($one,'description')->textInput() ?>
    </div>
    <div class="col-md-12">
        <?=Html::submitButton('Создать',['class'=>'btn btn-success'])?>
    </div>
</div>
<?php ActiveForm::end(); ?>
Вид создание, файл create.php
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
?>
<h1>Сооздать</h1>
<?php $form = ActiveForm::begin(); ?>
<div class="row">
    <div class="col-md-6">
        <?=$form->field($model,'title')->textInput() ?>
    </div>
    <div class="col-md-6">
        <?=$form->field($model,'description')->textInput() ?>
    </div>
    <div class="col-md-12">
        <?=Html::submitButton('Создать',['class'=>'btn btn-success'])?>
    </div>
</div>
<?php ActiveForm::end(); ?>
Где ошибка плиз скажы
0
 Аватар для php10
146 / 105 / 44
Регистрация: 30.04.2016
Сообщений: 550
01.08.2016, 21:34
Спрашыватель, вы в коде все намешали....

Давайте вы сначала прочитаете:
https://github.com/yiisoft/yii... t-forms.md
затем:
https://github.com/yiisoft/yii... -models.md

И поговорим

Вам для формы лучше создать отдельную модель, а не использовать ActiveRecord.
1
0 / 0 / 3
Регистрация: 30.05.2016
Сообщений: 171
02.08.2016, 19:35  [ТС]
Прочитал я про формы и модель в валидации ввел
PHP
1
2
3
4
5
public function rules(){
    return [
    [['title','description'],'default','value' => 4],
    ];
}
и
0
0 / 0 / 3
Регистрация: 30.05.2016
Сообщений: 171
02.08.2016, 19:41  [ТС]
Тоесть если значения в полях пустые, то будет 4 добавлятся, почему то вводимые мной данные с формы где-то теряются и поэтому пустое значение и не добавляется в базу, но почему не понимаю.
"По умолчанию входные данные считаются пустыми, если их значением является пустая строка, пустой массив или null."
0
 Аватар для php10
146 / 105 / 44
Регистрация: 30.04.2016
Сообщений: 550
02.08.2016, 20:47
Лучший ответ Сообщение было отмечено Спрашыватель как решение

Решение

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
class MyForm extends Model
{
     public $field1;
 
     public rules()
     {
              return [
                [
                    'field1', 'string
                ]
              ];
     }
 
     public save()
     {
             // вот тут сохраняй свою модель!
     }
}
Вызов из контроллера:
PHP
1
2
3
4
5
6
$form = new MyForm();
if (Yii::$app->request->isPost) {
    if ($form->load(Yii::$app->request->post()) && $form->validate()) {
         $form->save();
    }
}
Не нужно данные в модель заносить вручную, можно воспользоваться Yii2. В методе load мы указываем источник данных. Затем вы забываете указать тип данных в rules(), я например указал string, значит это строка или null, есть еще required, есть много валидаторов, прочитайте про них)
1
0 / 0 / 3
Регистрация: 30.05.2016
Сообщений: 171
02.08.2016, 20:54  [ТС]
Но по видеоуроку у человека ведь всё работало https://www.youtube.com/watch?... 2fmtk6TlXP
А с вашим примером надо всё переписать.Но всёравно спасибо и за ссылки и за код)))
0
 Аватар для php10
146 / 105 / 44
Регистрация: 30.04.2016
Сообщений: 550
02.08.2016, 20:59
Спрашыватель, Я бы на вашем месте читал только:
1) официальный Guide на гитхабе. Это обязательно к прочтению!
2) официальную доку по Yii2
3) блог Александра (rmcreative.ru) - Александр, один из разработчиков Yii2.

Второе - берите сразу проект, тогда будет проще. А уже потом, когда вы знаете, что такое хорошо, а что плохо, можно смотреть видеоуроки
0
0 / 0 / 3
Регистрация: 30.05.2016
Сообщений: 171
02.08.2016, 21:06  [ТС]
ввел я
PHP
1
2
3
4
5
6
public save()
     {
            $model = self::find()
        ->all();
        return $model;    // вот тут сохраняй свою модель!
     }
и так ввел
PHP
1
2
3
4
5
6
public function save()
     {
            $model = self::find()
        ->all();
        return $model;    // вот тут сохраняй свою модель!
     }
и ошибка
0
 Аватар для php10
146 / 105 / 44
Регистрация: 30.04.2016
Сообщений: 550
02.08.2016, 21:13
правильно public function save()
эта функция выводит или true | false. А вы что делаете?) Вы не сохраняете свою модель, а лишь возвращается данные))
1
0 / 0 / 3
Регистрация: 30.05.2016
Сообщений: 171
02.08.2016, 21:18  [ТС]
Я изменил свой контроллер на ваш контроллер и всё заработало только не перенаправляет на страницу с админкой, но это сам как-то подправлю.Спасибо большое вам очень помогли, без вас я незнаю как долго бы искал решение.Таким как вы памятники ставить надо!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.08.2016, 21:18
Помогаю со студенческими работами здесь

Как в Yii сформировать url с id на конце?
Добрый день, Почему данный код: Yii::app()-&gt;createUrl('/product/item', array('id', $item-&gt;CODE)) Формирует следующий url...

URL адрес
Всем привет! У меня есть такой вопрос, на многих сайтах видел такие url без расширения, например: http://site.ru/music/new/ ...

URL-адрес
Скачал PHP и Apache. Хочу сделать какую-нибудь простою программу (на пример, вывод на экран: &quot;Hello, world!&quot;). Но как сделать? Я...

Опасный Url-адрес
Заблокирован опасный URL-адрес. Это вирус?

Как сохранять url адрес?
Сделана авторизация через гугл. В гугл как известно невозможно передать полный путь страницы вашего сайта и потом. Гугул переадресовывает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru