倾城龙爱 2015-07-08 19:21:04 2644次浏览 5条回复 10 6 0

(1)use yii\bootstrap\ActiveForm; 请求form表单

<?php $form = ActiveForm::begin(['id' => '', 'action' => "提交地址" . $model->id]); ?>
<?=
	$form->field($order, '已实例化的字段', [
		'inputOptions' => ['class' => '', 'placeholder' => '', 'tabindex' => ''],
		'template' => '<div class="">{input}</div>
				<div class="">{error}</div>
				'])->textInput();
	radioList(['0' => '冻结', '1' => '正常']);
	textarea();
?>
<?php ActiveForm::end(); ?>

(2)use yii\data\Pagination;请求分页

$pages = new Pagination(['totalCount' => $data->count(), 'pageSize' => '20']);
$model = $data->offset($pages->offset)->limit($pages->limit)->orderBy('id asc')->asArray()->all();
<?= LinkPager::widget(['pagination' => $pages]); ?>

(3)foreach循环

<?php foreach ($model as $val) { ?><?php } ?>
<?php foreach ($power as $key => $val) { ?><?php } ?>

(4)$this->render(,['']) 渲染页面 $this->redirect(['']); 重定向

(5)实例化对象

$model = Models::find();   
$model = Models::findOne('  '=>'  ','  '=>'  ');  
$model = $id ? Models::findOne($id) : new Models();

(6)类的公用函数指定布局
public $layout = 'view';

(7)查询条件

where(['  '=>'  ','  '=>'  '])查询条件
select('  ')查询字段
asArray(  )查询结果作为数组

(8)控制器接收数据

$model->load(Yii::$app->request->post()) && $model->validate()
$params = Yii::$app->request->post();
$params = Yii::$app->request->get();

(9)函数

$newfield = explode(',', $abc);  把字符串按照参数分割为数组
number_format(number,decimals,decimalpoint,separator) 函数通过千位分组来格式化数字。
bcadd()
bcsub()

(10)ajax传参数json

use yii\web\Response;
public function init()      init初始化的成员函数使用
{
parent::init();
if (Yii::$app->request->isAjax)
Yii::$app->response->format = Response::FORMAT_JSON;
}
return ['msg'=>'提示信息'];

(11)保存数据
$_model->save();

(12)引入文件

$this->registerCssFile('相对地址', ['depends' => 'yii\web\YiiAsset', 'position' => 1]);
$this->registerJsFile('相对地址', ['depends' => 'yii\web\YiiAsset', 'position' => 1]);

(13)用户是否登录

if (\Yii::$app->user->isGuest) {
return $this->redirect('/');
} 
$id = Yii::$app->user->getIdentity()->id;      获取当前用户的id

(14)联查

$record = 表一::find()->innerJoin(表二, $order_table . ".online_pid=" . $product_table . ".id")
->select($order_table . ".*," . $product_table . ".title as abc,"" . $product_table . '.money,' . $product_table . '.yield_rate,' . $product_table . '.refund_method,' . $product_table . '.expires,' . $product_table . '.start_date,' . $product_table . '.end_date')

$sql = $record->createCommand()->getRawSql();
$model = $db->createCommand($sql)->queryAll();

(15)报错
$model->addError('字段', '提示');

(16)事物

$transaction = Yii::$app->db->beginTransaction();
$transaction->commit();
$transaction->rollBack();

(17)隐藏域

<?= $form->field($omodel, 'order_money', ['template' => '{input}'])->hiddenInput() ?> 
<input type="hidden" value="<?= $omodel->order_money ?>" name="order_money"/>
<?= $form->field($omodel, 'order_money', ['template' => '{error}']) ?>
觉得很赞
  • 回复于 2015-07-08 19:52 举报

    帮你调整好格式了。下次注意markdown的使用哦

    1 条回复
    回复于 2015-07-09 13:20 回复

    谢谢,我下次一定注意!

  • 回复于 2015-07-09 18:09 举报

    第7条,建议使用原生的sql语句.
    $command = $connection->createCommand('SELECT * FROM post');
    $posts = $command->queryAll();
    用久了这种重度orm的东西,会忘记sql如何编写. 不是好事哦.个人见解,仅供参考o(∩_∩)o

    6 条回复
    回复于 2015-07-09 22:17 回复

    记得了,3Q

    回复于 2015-07-12 22:01 回复

    orm主要是为了以后切换数据库方便,无需修改代码就可切换到其他数据库。

    回复于 2015-07-12 23:41 回复

    这个不明白!

    回复于 2015-08-06 17:04 回复

    切换数据库的时候,语法会不一样,你现在用的mysql是一套语法,如果现在的项目需要切换到oracle,如果是用的框架带的sql生成器。那么切换数据库的时候,仅仅是换个数据库名。其他代码都不用改,如果你写的原生sql语句,那么是不是你的sql语句也得改呢。

    回复于 2015-08-07 17:07 回复

    如果现在的项目需要切换到oracle 这种情况的确存在,但极为少见.
    在项目开始之初,技术选型的时候,就已经确定了要使用的语言,数据库类型等等.
    哪能随意切换. 换数据库,我只在,项目重新做的时候,遇到过一次.
    个人见解,仅供参考o(∩_∩)o

    回复于 2015-08-10 11:34 回复

    嗯,项目中途换数据库这种事确实很少,但还是有的,上次我公司一个项目,在mysql和sqlite来回切换了两次。

  • 回复于 2015-07-09 18:10 举报

    发现一个细节问题,不知道去哪里反馈哦.
    预览的时候,不换行...

  • 回复于 2016-08-03 14:44 举报

    写的很好, 赞一个,,,

  • 回复于 2017-01-11 10:02 举报

    请教一下当前用户id。 扣扣:825949571

您需要登录后才可以回复。登录 | 立即注册