public function actionDelete($id)
{
$this->findModel($id)->delete();
return $this->redirect(['index']);
}
'rules' => [ // Описываем шаблоны url и соответсвующие им контроллеры и действия
// Массив маршрутов
'/' => 'site/index',
/* "admin/tizer/delete/<id:\d+>" => "admin/tizer/delete",
*/ 'article/short/<id:\d+>' => 'site/article/',
'article/full/<id:\d+>' => 'site/fullarticle/',
'addClick/<idClickBlock:\d+>' => 'site/addclick',
'admin' => 'admin/default',
'admin/news' => 'admin/news',
'admin/tizers' => 'admin/tizer',
'admin/sections' => 'admin/section',
'admin/users' => 'admin/user',
],
<?php
namespace app\modules\admin\models;
use Yii;
/**
* This is the model class for table "users".
*
* @property string $id
* @property string $username
* @property string $email
* @property string $password
* @property integer $created_at
*/
class Users extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'users';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['username', 'email', 'password', 'created_at'], 'required'],
[['created_at'], 'integer'],
['email','email'],
[['username', 'password'], 'string', 'max' => 50],
[['email'], 'string', 'max' => 50],
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'username' => 'Имя пользователя',
'email' => 'Email',
'password' => 'Пароль',
'created_at' => 'Дата регистрации',
];
}
}
'<_c:\w+>/<index>' => '<_c>/<index>
'<_m:\w+>/<_c:\w+>/<_a:\w+>' => '<_m>/<_c>/<_a>
public function beforeAction($action)
{
print_r($action);
return false;
}
/*public function actionDelete($id)
{
$this->findModel($id)->delete();
return $this->redirect(['index']);
}*/
'<_m:\w+>/<_c:\w+>/<_a:\w+>' => '<_m>/<_c>/<_a>
каким образом фреймворк тогда запускает объект UserController и ищет в нем метод actionDelete
Я не понял почему, в одном случае я ничего не прописывал и все работало, а данном нужно было прописать?
public function beforeAction($action)
{
return true;
}
Или это баги во фреймворки?
'urlManager' => [
'enablePrettyUrl' => true, // Включаем компонент
'showScriptName' => false,// Исключаем точку входа (index.php) из ссылок
'rules' => [ // Описываем шаблоны url и соответсвующие им контроллеры и действия
// Массив маршрутов
'/' => 'site/index',
/* "admin/tizer/delete/<id:\d+>" => "admin/tizer/delete",
*/ 'article/short/<id:\d+>' => 'site/article/',
'article/full/<id:\d+>' => 'site/fullarticle/',
'addClick/<idClickBlock:\d+>' => 'site/addclick',
'admin' => 'admin/default',
'admin/news' => 'admin/news',
'admin/tizers' => 'admin/tizer',
'admin/sections' => 'admin/section',
'admin/users' => 'admin/user',
'<_m:\w+>/<_c:\w+>/<_a:\w+>' => '<_m>/<_c>/<_a>'
],
],
я думал если работает, значит правильно пишу
'article/short/<id:\d+>' => 'site/article/',
'article/full/<id:\d+>' => 'site/fullarticle/',
'admin/news' => 'admin/news',
'admin/tizers' => 'admin/tizer',
return $this->redirect(['index']);
'/' => 'site/index',
'article/short/<id:\d+>' => 'site/article/',
'article/full/<id:\d+>' => 'site/fullarticle/',
'addClick/<idClickBlock:\d+>' => 'site/addclick',
'admin' => 'admin/default/',
'admin/news' => 'admin/news/',
'admin/tizers' => 'admin/tizer/',
'admin/sections' => 'admin/section/',
'admin/users' => 'admin/user/',
['index']
public function actionDelete($id)
{
$this->findModel($id)->delete();
return $this->redirect(['admin/news/]);
}
Но возможно у Вас 404 еще до этого, еще на этапе поиска экшена удаления
'enableStrictParsing' => true, // чтобы "я не прописывал маршруты,и они работают."
// Base
'<action>' => 'site/<action>',
'<controller>/<action>' => '<controller>/<action>',
'<module>/<controller>/<action>/<id:\w+>' => '<module>/<controller>/<action>',
'<module>/<controller>' => '<module>/<controller>/index',
'<module>/<controller>/<action>' => '<module>/<controller>/<action>',