我有一张桌子:
*CREATE TABLE IF NOT EXISTS `blogs_settings` (
`blog_id` int(11) NOT NULL AUTO_INCREMENT,
`owner_id` int(11) NOT NULL,
`title` varchar(255) NOT NULL,
`meta_description` text NOT NULL,
`meta_keywords` text NOT NULL,
`theme` varchar(25) NOT NULL DEFAULT 'default',
`is_active` tinyint(1) NOT NULL DEFAULT '1',
`date_created` int(11) NOT NULL,
PRIMARY KEY (`blog_id`),
KEY `owner_id` (`owner_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;*
Run Code Online (Sandbox Code Playgroud)
第二个表:
*CREATE TABLE IF NOT EXISTS `users` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`password` varchar(128) …Run Code Online (Sandbox Code Playgroud) 如何重定向到另一个模块?
return $this->redirect()->toRoute(null, array(
'module' => 'othermodule',
'controller' => 'somecontroller',
'action' => 'someaction'
));
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用,任何想法?
好吧,我在AppAsset中声明了我所有的CSS和JavaScript内容,但我不能让它在前端视图中显示css和js链接.这是我的文件:
应用程序/资产/ AppAsset.php:
<?php
namespace app\assets;
use yii\web\AssetBundle;
class AppAsset extends AssetBundle {
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'assets/css/bootstrap.min.css',
'assets/plugins/weather-icon/css/weather-icons.min.css',
...
];
public $js = [
];
public $depends = [
'yii\web\YiiAsset',
'yii\bootstrap\BootstrapAsset',
];
}
Run Code Online (Sandbox Code Playgroud)
这是我的布局(app/modules/admin/layouts/admin.php):
<?php
use app\assets\AppAsset;
AppAsset::register($this);
?>
<?php $this->beginPage() ?>
<!DOCTYPE html>
<html lang="en">
<head>
<?php $this->head() ?>
<?= $this->render('partials/head') ?>
</head>
<body class="tooltips">
<?= $this->render('partials/colour_panel') ?>
<div class="wrapper">
<?= $this->render('partials/top_navbar') ?>
<?= $this->render('partials/left_sidebar') ?>
<?= $this->render('partials/right_sidebar') ?>
<div …Run Code Online (Sandbox Code Playgroud) 我正在创建注册表单:
这是我的行动:
public function registrationAction() {
$form = new RegistrationForm();
$request = $this->getRequest();
if ($request->isPost()) {
$users = new Users();
$form->setInputFilter($users->getInputFilter());
$form->setData($request->getPost());
var_dump($form->isValid());
exit;
if ($form->isValid()) {
$users->exchangeArray($form->getData());
$this->getUsersTable()->addUser($users);
$message = '????????????? ?? ???????! ?????? ?? ??????? ? ??????? ?? ???? ??????? ?? ???? ?? ????????? ????????.';
}
}
return new ViewModel(array(
'form' => $form,
'message' => $message,
));
}
Run Code Online (Sandbox Code Playgroud)
这是我的表格:
namespace Main\Form;
use Zend\Form\Form;
class RegistrationForm extends Form {
public function __construct($name = null) {
parent::__construct('User');
$this->add(array(
'name' => …Run Code Online (Sandbox Code Playgroud) <?php
namespace app\modules\site\controllers;
use Yii;
use yii\filters\AccessControl;
use yii\web\Controller;
use app\models\SiteSettings;
class CommonController extends Controller {
public function init() {
Yii::$app->language = 'bg-BG';
Yii::$app->formatter->locale = 'bg-BG';
Yii::$app->params['siteSettings'] = SiteSettings::find()->one();
if (Yii::$app->params['siteSettings']->in_maintenance == 1) {
Yii:$app->catchAll = ['index/maintenance', 'message' => Yii::$app->params['siteSettings']->maintenance_message];
}
}
Run Code Online (Sandbox Code Playgroud)
}
我尝试从 CommonController init 方法中设置 catchAll 路由,但它引发了一个错误:
从空值创建默认对象
是否可以根据数据库提供的条件设置 catchAll 路由?
我有EdpModuleLayouts模块的问题.我将Module.php放在module/EdpModuleLayouts /目录中,其中包含以下内容:
<?php
namespace EdpModuleLayouts;
class Module {
public function onBootstrap($e) {
$e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\Mvc\Controller\AbstractActionController', 'dispatch', function($e) {
$controller = $e->getTarget();
$controllerClass = get_class($controller);
$moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\'));
$config = $e->getApplication()->getServiceManager()->get('config');
if (isset($config['module_layouts'][$moduleNamespace])) {
$controller->layout($config['module_layouts'][$moduleNamespace]);
}
}, 100);
}
}
Run Code Online (Sandbox Code Playgroud)
我还在config/application.config.php中注册了它:
return array(
'modules' => array(
'EdpModuleLayouts',
'Main',
'Administrator',
'Object'
),
'module_layouts' => array(
'Main' => 'layout/main',
'Administrator' => 'layout/admin',
),
'module_listener_options' => array(
'module_paths' => array(
'./module',
),
'config_glob_paths' => array(
'config/autoload/{,*.}{global,local}.php',
),
),
);
Run Code Online (Sandbox Code Playgroud)
"main"模块的配置如下所示:
<?php
return array( …Run Code Online (Sandbox Code Playgroud) 在单个操作中处理多个表单的正确方法是什么?
这是我的模型/ MembersBans.php
<?php
namespace app\models;
use Yii;
use yii\behaviors\TimestampBehavior;
use app\models\Members;
class MembersBans extends \yii\db\ActiveRecord {
public $username;
public static function tableName() {
return '{{%members_bans}}';
}
public static function primaryKey() {
return array('ban_id');
}
public function behaviors() {
return [
[
'class' => TimestampBehavior::className(),
'createdAtAttribute' => 'date_added',
'updatedAtAttribute' => 'last_updated',
],
];
}
public function rules() {
return [
[['ban_id', 'ban_memberid', 'date_added', 'last_updated'], 'integer'],
[['username', 'end_date'], 'safe'],
['end_date', 'date', 'format' => 'yyyy-mm-dd'],
[['ban_ip'], 'string', 'max' => 40],
[['reason'], 'string', …Run Code Online (Sandbox Code Playgroud) yii2 ×3
forms ×2
layout ×2
php ×2
assets ×1
frameworks ×1
module ×1
mysql ×1
routes ×1
tablegateway ×1