正如这里所描述的那样,我正在尝试进行迁移,以便让yii创建用户身份验证表.但是我得到错误:
异常'yii\base\InvalidConfigException',消息'您应该在执行此迁移之前配置"authManager"组件以使用数据库.
authManager存在于配置中,但我仍然遇到该错误.组态:
'components' => [
...
'db' => $db,
'authManager' => [
'class' => 'yii\rbac\DbManager',
// 'defaultRoles' => ['guest'],
],
...
],
Run Code Online (Sandbox Code Playgroud)
有什么问题?
我想删除iframe中的水平滚动条.我只需要一个垂直滚动条来查看冗长的内容.我的代码是
<iframe height='514' width='790'
marginwidth='0' marginheight='0'
frameborder='0'
overflow-y='scroll'
overflow-x='hidden'>
</iframe>
Run Code Online (Sandbox Code Playgroud)
任何人请解决我的问题.提前祝福.
在Firefox中,我可以在访问Web开发人员工具栏时创建全页屏幕截图(可以在开发人员工具设置中激活).不幸的是,我只能使用默认分辨率来执行此操作.有没有机会获得更高分辨率的图像?使用Firefox或附加组件?或者它可以在另一个浏览器中?
假设我有这个表结构:
+----+------------+-----------+---------+------+---------+---------+---------------------+---------------------+
| id | first_name | last_name | country | city | address | zipcode | created | updated |
+----+------------+-----------+---------+------+---------+---------+---------------------+---------------------+
| 1 | Duvdevan | Duvdevani | NULL | NULL | NULL | NULL | 2016-02-12 15:37:19 | 2016-02-12 16:35:57 |
+----+------------+-----------+---------+------+---------+---------+---------------------+---------------------+
Run Code Online (Sandbox Code Playgroud)
我想添加一个名为新列email,刚过id之前first_name,使用addColumn 方法的的Migration类.
我在新迁移中唯一能做的就是:
public function up()
{
$this->addColumn('contacts', 'email', $this->string(64));
}
Run Code Online (Sandbox Code Playgroud)
它将把它放在桌子的最后,updated在场后.
如何在表中的特定位置添加列,以便可以遵循此SQL查询:
ALTER TABLE contacts ADD email VARCHAR(64) AFTER id
Run Code Online (Sandbox Code Playgroud) 我在yii2论坛上描述了我的问题,但没有人帮助我,很可能是因为没有人知道答案.
这是这里的简短描述.
我想这样做:
<label class="checkbox-inline"><input type="checkbox" value="ASD">Option 1</label>
<label class="checkbox-inline"><input type="checkbox" value="DSA">Option 2</label>
<label class="checkbox-inline"><input type="checkbox" value="REW">Option 3</label>
Run Code Online (Sandbox Code Playgroud)
但是使用yii2 checkboxList Html帮助器.
这是我简化的复选框值数组
<?= $form->field($model, 'country')->checkboxList(['FR'=>'France', 'DE'=>'Germany']) ?>
Run Code Online (Sandbox Code Playgroud)
我需要将class="checkbox-inline"这个yii2辅助方法生成的每个复选框的标签标签插入,但我无法弄清楚如何做到这一点.
我正在关注这些指南:checkboxList和复选框一(我不能发布超过2个链接,因为我是新来的)但它们对我没有帮助,我只是不明白我必须做什么.我试过的一切都失败了.
有人可以帮助我,我现在试了三天吗?
在这里我试图删除任何包含"在他们的电子邮件/用户名中的用户.
def removeQuote(self, tbl,record):
""" Updates the record """
statmt="select id from %s WHERE `email` LIKE '%%\"%%'" % (tbl)
self.cursor.execute(statmt)
rows=list(self.cursor.fetchall())
for idx, val in enumerate(rows):
id= val[0]
delstatmt = "DELETE FROM `maillist_subscription` WHERE id = '%s'" % id
print delstatmt
self.cursor.execute(delstatmt)
Run Code Online (Sandbox Code Playgroud)
此输出显示操作已成功完成,但记录仍保留在数据库中.输出还显示了正确的mysql语句:
DELETE FROM `maillist_subscription` WHERE id = '8288754'
Run Code Online (Sandbox Code Playgroud)
感谢你的帮助!
我的目标是这个网址:
component/users/?view=registration
Run Code Online (Sandbox Code Playgroud)
至:
registration.html
Run Code Online (Sandbox Code Playgroud)
的.htaccess是在网站的文件夹mysite的.
我试过这个:
RewriteBase /mysite
RewriteRule ^component/users/?view=registration$ registration.html$ [R=301,L]
Run Code Online (Sandbox Code Playgroud)
但我不工作......
当我尝试这个:
RewriteRule ^component/users/_view=registration$ registration.html$ [R=301,L]
Run Code Online (Sandbox Code Playgroud)
它运作得很好.
那我怎么能用问号解决这个问题呢.我已经读过它,它不是URL的一部分(附加).我已经读过我必须使用像querystring这样的东西,但我并不真正理解语法.
也许有人可以写出这个问题的解决方案?会很棒=)
当我使用下面的代码时,它会覆盖action-column删除/更新链接.
'rowOptions' => function ($model, $key, $index, $grid) {
return [
'id' => $model['id'],
'onclick' => 'location.href="'
. Yii::$app->urlManager->createUrl('accountinfo/update')
.'?id="+(this.id);',
];
},
Run Code Online (Sandbox Code Playgroud)
由于我有很多列,最好在一个地方指定链接网址,而不是在每列中使用以下代码:
'value' => function ($data) {
return Html::url('site/index');
}
Run Code Online (Sandbox Code Playgroud)
那么除了动作列之外,还有哪种方法可以为GridView中的整行提供链接?
编辑:全网格视图
GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'rowOptions' => function ($model, $index, $widget, $grid) {
if ($widget == 1)
return [
'id' => $model['id'],
'onclick' => 'location.href="'
. Yii::$app->urlManager->createUrl('accountinfo/update')
. '?id="+(this.id);'
];
},
'columns' => [
['class' => 'yii\grid\SerialColumn'],
// 'id',
'f_name',
'l_name',
'address',
'country',
'state',
'city', …Run Code Online (Sandbox Code Playgroud) 我想使用composer脚本进行一些安装后的操作,例如将文件从bootstrap vendor文件夹复制到我的Web应用程序公用文件夹.我有PHP世界和Web应用程序开发的宝贝经验.
这是我的目录结构*

这是我的composer.json
{
"name": "Composer Script",
"description": "An example to demonstrate the use of Composer scripts",
"version": "1.0.0",
"require": {
"twitter/bootstrap": ">=3.0"
},
"scripts": {
"post-install-cmd": [
"ComposerScript\\Installer::postInstall"
],
"post-package-install": [
"/var/www/test/composer-script/install.sh"
]
}
}
Run Code Online (Sandbox Code Playgroud)
这是ComposerScript\Installer.php
class Installer
{
public static function postInstall(Event $event)
{
$composer = $event->getComposer();
// do stuff
}
public static function postPackageInstall(Event $event)
{
$installedPackage = $event->getOperation()->getPackage();
// do stuff
}
public static function warmCache(Event $event)
{
// …Run Code Online (Sandbox Code Playgroud) 我想用跟踪器替换HTML电子邮件中的所有链接.据我所知,有这个EVENT_BEFORE_SEND事件.所以我创建了一些可以像下面这样使用的行为
$mailer = \Yii::$app->mailer;
/* @var $mailer \yii\mail\BaseMailer */
$mailer->attachBehavior('archiver', [
'class' => \app\MailTracker::class
]);
Run Code Online (Sandbox Code Playgroud)
这是MyTracker班级的内容.
class MailTracker extends Behavior {
public function events() {
return [
\yii\mail\BaseMailer::EVENT_BEFORE_SEND => 'trackMail',
];
}
/**
* @param \yii\mail\MailEvent $event
*/
public function trackMail($event) {
$message = $event->message;
$htmlOutput = $this->how_do_i_get_the_html_output();
$changedOutput = $this->changeLinkWithTracker($htmlOutput);
$message->getHtmlBody($changedOutput);
}
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是\yii\mail\BaseMailer没有提供在发送之前获取HTML输出的方法.
这该怎么做?
UPDATE
我能做到这一点的唯一方法是通过这种黑客方式.
/* @var $message \yii\swiftmailer\Message */
if ($message instanceof \yii\swiftmailer\Message) {
$swiftMessage = $message->getSwiftMessage();
$r = new …Run Code Online (Sandbox Code Playgroud) php ×5
yii2 ×5
html ×2
.htaccess ×1
autoloader ×1
checkbox ×1
composer-php ×1
console ×1
firefox ×1
gridview ×1
iframe ×1
migration ×1
mod-rewrite ×1
mysql ×1
python ×1
screenshot ×1
sql ×1
swiftmailer ×1
url ×1