标签: yii

Yii中的动态布局

我有一个Yii应用程序,在布局中我有一个静态侧边栏.我想根据控制器操作或视图更改侧边栏的内容.目前,在views/layouts/main.php文件中,我有一个侧边栏定义为:

<div class="sidebar">hello!</div>
Run Code Online (Sandbox Code Playgroud)

当控制器image和动作是test,我想显示这个:

<div class="sidebar">Created at <? echo $image->created_at; ?></div>
Run Code Online (Sandbox Code Playgroud)

$ image对象在image控制器和test操作中定义.

简而言之,我想在控制器image和动作是时显示侧边栏test,但是,我不希望完全具有不同的布局.我怎么能做到这一点?

php sidebar yii

1
推荐指数
1
解决办法
3163
查看次数

在Yii中加入表格

我有两张桌子,tbl_studenttbl_record.我想加入他们,但我不知道如何在Yii中做到这一点.我正在使用php.我找到了教程提及CDbCriteria

'join'=>"INNER JOIN...."
Run Code Online (Sandbox Code Playgroud)

我不知道代码应该具有什么功能以及应该放置代码的型号.tbl_student具有stud_id主键并tbl_record具有record_id主键和stud_id外键.有人可以告诉我一步一步的过程吗?

php join inner-join yii

1
推荐指数
1
解决办法
6292
查看次数

如何在YII中从db行中找到最新插入的行?

我有一个表"backup_history",它使用以下字段在我的数据库中存储备份详细信息:

id
site_id
backup_file_name
file_size
by (cron/manual)
datetime
Run Code Online (Sandbox Code Playgroud)

对于下一次备份,我需要查找站点的最近上次备份日期,并与设置(每日备份)进行比较,然后通过cron运行下一次备份.

但我无法找到最后插入的行与
site_id = $ id AND by ='cron'AND date ='这将是最近的日期时间'

$lastbackup = BackupHistory::model()->findByAttributes(array('site_id' => $single_site->id, 'by' => 'cron'));
Run Code Online (Sandbox Code Playgroud)

此代码提供了一行但不是最近的日期n时间.
可能会出错,所以PLZ提出了一些解决方案.谢谢 !!!

lastinsertid yii

1
推荐指数
1
解决办法
5771
查看次数

yii中的多个连接

我是从yii开始的.

我有以下数据库结构:

Table:             Rows:

user               [id,login,password,name,email]
userToProject      [user_id,project_id,role]
project            [id,name,status]
Run Code Online (Sandbox Code Playgroud)

我想检索在status = 3的项目中工作的所有用户作为role = manager.顺便说一句,这是我的代码,我需要进行第二次连接才能达到项目状态.

$criteria=new CDbCriteria;
$criteria->join='INNER JOIN {{userToProject}} a ON t.id=a.user_id and a.role='.Role::MANAGER;
$criteria->distinct=true;
return User::model()->findAll($criteria);
Run Code Online (Sandbox Code Playgroud)

我可以使用标准制作它还是应该实现SQL命令并运行它?

谢谢

php mysql yii

1
推荐指数
1
解决办法
2672
查看次数

基于Yii(关系)数据库表动态创建html表?

我试图通过给出表中的列和表数据本身来创建"视图"或将构建HTML表的函数.这将是Yii中renderPartial方法调用的页面.我想像这样做(将演示使用伪代码):

    void view(array $cols, array $tabledata) 
    {
    //$tabledata will be an array of CActiveRecord objects. $cols is an array of strings from getColumnNames().
    <table><thead><tr>
    foreach($cols as $col)
    {
        <th>$col</th>
    }
    </tr></thead><tbody>
    foreach($tabledata as $data)
    {
        <tr>
        foreach($cols as $col)
        {
            <td>$data->$col</td>
        }
        </tr>
    }
    </tbody></table>
    }
Run Code Online (Sandbox Code Playgroud)

然而,我遇到的问题是我无法获得关系的列.我找到了http://www.yiiframework.com/doc/api/1.1/CDbTableSchema,但似乎只给出了特定表的列名.我需要一种方法来获取关系将用于生成HTML表时使用的所有列.或者,如果有人有更好的方法,请告诉我.谢谢!

编辑:作为一个注释,我没有使用CGridView的原因,包括我下面列出的那个,是我不想知道列是什么或数据.我希望能够使用代码构建表.

html php styling yii

1
推荐指数
1
解决办法
1万
查看次数

Yii框架,提交表单后,文本字段不会在数据库中更新

我对MVC和Yii框架很新,因此很有可能我的问题非常愚蠢.如果是这样,请提前接受我的预测.

我希望在我的网站管理部分中有一个表单,用户可以在其中发布一些内容.我按照示例博客的教程,但似乎添加到数据库中定义为文本的字段(我的表单中的textarea)的内容在提交表单后没有得到更新(其他一切正常).这是我的表的sql语句:

CREATE TABLE `tbl_show` (
   `id` bigint(20) NOT NULL AUTO_INCREMENT,
   `presentation` text,
    PRIMARY KEY (`id`),
    KEY `fk_tbl_show_tbl_season1` (`tbl_season_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
Run Code Online (Sandbox Code Playgroud)

我使用Gii制作我的模型和CRUD,我只在这里添加可能相关的部分:

在我的控制器上:

    public function actionCreate()
{
    $model=new Show;

    if(isset($_POST['Show']))
    {
        $model->attributes=$_POST['Show'];
        if($model->save())
                    {
                        $this->redirect(array('view','id'=>$model->id));
                    }   
    }
    $this->render('create',array(
        'model'=>$model,
    ));
Run Code Online (Sandbox Code Playgroud)

和我的_form.php:

<div class="form">

 <?php $form=$this->beginWidget('CActiveForm', array(
 'id'=>'show-form',
 'enableAjaxValidation'=>false,
  )); ?>

<?php echo $form->errorSummary($model); ?>

    <div class="row">
    <?php echo $form->labelEx($model,'presentation'); ?>
    <?php echo $form->textArea($model,'presentation',array('rows'=>6, 'cols'=>50)); ?>
    <?php echo $form->error($model,'presentation'); ?>
</div>

<div class="row buttons">
    <?php echo CHtml::submitButton($model->isNewRecord …
Run Code Online (Sandbox Code Playgroud)

mysql yii

1
推荐指数
1
解决办法
4255
查看次数

Git ignore - 应用程序日志

我有一个非常奇怪的问题,我想知道你对此的建议.

有时,当我将更改推送到REMOTE服务器时,不会显示更改.我做ssh到远程机器,我做了git status,我看到:

修改:app/runtime/application.log

问题是,所有目录,现在还有特定文件,都是.gitignore的目标.

/nbproject/
/app/runtime/
/public_html/assets/
/app/runtime/application.log*
/app/runtime/error.log*
Run Code Online (Sandbox Code Playgroud)

没有ftp直接完成,只使用了推拉.

也许它们是app/runtime/application.log在实际站点上写的东西,所以它application.log与存储库中的不同,当发生这种情况时git拒绝拉,因为它将覆盖application.log到旧版本.

这可能发生在同一目录上的许多其他文件中.应用程序运行的那一刻,可以由实时站点创建的文件.

我的问题是,我们怎样才能避免这种情况?为什么.gitignore似乎在这里没有效果?

ps - 如果我需要提供更多细节,比如服务器挂钩或其他什么,请告诉我.

git gitignore yii

1
推荐指数
1
解决办法
2803
查看次数

CGridView编码了该值

我正在关注这里的文件http://www.yiiframework.com/wiki/278/cgridview-render-customized-complex-datacolumns/

所以我有以下观点

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'item-table-grid',
'dataProvider'=>$model->search(),
'itemsCssClass'=>'item-table-grid',
'columns'=>array(
    'customer_name',
    array(
        'name'=>'Edit',
        'value'=>array($model, 'editLink'),
    ),
),
));
Run Code Online (Sandbox Code Playgroud)

这是模型中的editLink函数

public function editLink($data, $row) {
    $link = '';
    if ($data->is_draft) {
        $link = '<a href="customer/update/'.$data->id.'">Edit</a>';
    }
    return $link;
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是返回值是编码的,所以我得到<a href=...>

有没有办法告诉CGridView不要对值进行编码?

谢谢

php yii cgridview

1
推荐指数
1
解决办法
3833
查看次数

使用Yii模型创建或更新多个mysql行

我最近开始和Yii合作,所以请原谅无知:)

我有一个SQL查询返回多行(数组数组),然后我想将这些行插入到DB:

$queryResults = $command->queryAll();
$model=new Campaigns();
foreach ($queryResults as $CActive) {
    $model->setIsNewRecord(true);
    $model->attributes=$CActive;

if($model->save($CActive)) {
    echo "Good!";
}
Run Code Online (Sandbox Code Playgroud)

问题是即使我用新记录设置模型,它也记录了之前的PK(因为它是相同的模型).

我需要为每一行创建一个新模型吗?(似乎不太可能......)

一如既往地谢谢,丹尼

php mysql frameworks yii

1
推荐指数
1
解决办法
2686
查看次数

yii RegisterScript,id和type

我想在yii应用程序上使用jsrender.我需要注册这样的脚本:

<script id="movieTemplate" type="text/x-jsrender">
    <div>
        {{:#index+1}}: <b>{{:name}}</b> ({{:releaseYear}})
    </div>
</script>
Run Code Online (Sandbox Code Playgroud)

通常我使用CClientScript :: registerScript(); 但它不允许指定ID或类型.谁能建议一个干净的方法来做到这一点?

jquery yii jsrender

1
推荐指数
1
解决办法
753
查看次数