use app\Models\Product;
Product::find()->orderBy('order')->all();
请问,如果Product 是变量,有什么解决方案吗?
as一下。如use app\Models\Product as xxx
use app\Models\Product;
Product::find()->orderBy('order')->all();
请问,如果Product 是变量,有什么解决方案吗?
as一下。如use app\Models\Product as xxx
class ManageController extends Controller
{
public function actionMailchangepass()
{
$this->layout = false;
$time = Yii::$app->request->get("timestamp");
$adminuser = Yii::$app->request->get("adminuser");
$token = Yii::$app->request->get("token");
$model = new Admin;
$myToken = $model->createToken($adminuser, $time);
if ($token != $myToken) {
$this->redirect(['public/login']);
Yii::$app->end();
}
if (time() - $time > 300) {
$this->redirect(['public/login']);
Yii::$app->end();
}
if (Yii::$app->request->isPost) {
$post = Yii::$app->request->post();
if ($model->changePass($post)) {
Yii::$app->session->setFlash('info', '密码修改成功');
}
}
$model->adminuser = $adminuser;
return $this->render("mailchangepass", ['model' => $model]);
}
}
Yii::$app->end($status = 0, $response = null)
表示终止程序;默认的表示正常终止,状态默认为0;其它状态均异常;
redirect不能终止程序 必须使用return 或者 Yii::$app->end(); 终止程序
这是注释。意思就是end()为确保程序的生命周期的完成。
看到源码是这么写,exit 终止执行,楼上的都是正确 也可以换成: die; return;
public function end($status=0,$exit=true)
上一句已经跳转到其他页面了,想知道如果没有这一句会发生什么
学习了,原来是相当于exit()。终止程序执行。
为什么$this->head() 只生成CSS文件了,JS文件没有呢?
骚年,如果你标签闭合了的话,js在下面的。
js默认加载在页面底部$this->registerJsFile('xxx/xxx/xx/xx.js',['position'=>$this::POS_HEAD]);
求大神解救
web目录下的assets文件夹要改成777权限,就好了,另外还有web同级的runtimes文件夹也要是777
$database = new \yii\db\Query();
$sql1 = $database->select([])->from('aa')->Where(['is_del'=>0])->offset(10)->limit(10)->orderby('id desc')->createCommand()->getRawSql();
$sql2 = $database->select([])->Where(['isdel'=>0])->from('bb')->createCommand()->getRawSql();
输出sql:
sql1:"SELECT * FROM `aa` WHERE `is_del`=0 ORDER BY `id` DESC LIMIT 10 OFFSET 10"
sql2:"SELECT * FROM `bb` WHERE `isdel`=0 ORDER BY `id` DESC LIMIT 10 OFFSET 10"
输出的sql2
为什么会带着sql1
的order
,limit
,offset
?
除了重新new一个对象之外,有什么其他解决办法吗?
这很奇怪啊,总不能每次查询都新new一个吧。
1、new \yii\db\Query() 是一个对象,设置order,limit,offset是设置了对象的三个属性,下次再使用这个对象时,属性已经设置;
2、
3、如果是查询表相同,只是条件不同的话,可以使用clone;
每次要new一个新Query, Query会保存上次的查询状态
$arrs=Brand::find()->orderBy('order')->select('name')->asArray()->all();
结果为:
Array (
[0] => Array (
[name] => php
)
[1] => Array (
[name] => asp
)
[2] => Array (
[name] => jsp
)
)
那怎么取出这样的格式或转换出来
Array (
[1] => php
[2] => asp
[3] => jsp
)
\yii\helpers\ArrayHelper::getColumn(Brand::find()->orderBy('order')->select('name')->asArray()->all(), 'name')
浏览器不显示web目录
权限我这里也是777
你是不是配置了伪静态或者url美化。
<?= $form->field($model, 'name')->widget(DatePicker::classname(), [
'language' => '',
'dateFormat' => 'yyyy-MM-dd',
'options' => ['class' => 'form-control'],
]) ?>
DatePicker 怎么显示时分秒呢?
换dateTimePicker
类似打折的数字类型,如:0.1~1,这样的数字类型,在规则里应该怎么写呢?
浮点数验证或数字验证
请问,yii2对JS事件是否有相应的书写方法,还是一定要独立写JS代码?
比如,我点击某个DIV,另一个DIV 就显示
YII只是个PHP的框架。并没有对JS进行封装。也完全没有必要封装JS,毕竟有Jquery的存在。
所以你在引入Jquery之后完全可以依照JQ的写法去书写JS
当然,你可以控制JS存在于源代码的位置,比如head,body等位置。甚至,你可以把它控制在YII JQ的$(function(){})中。
PS:你可以在浏览器右键查看源代码以查看其JS最终位置。
代码看起来就像是酱紫的, 其中\yii\web\View::POS_READY代表着本块JS代码的位置存在于$(function(){})中。
你可以在权威指南的 显示数据->操作客户端脚本 以及 应用结构->视图->使用数据块 中得到详细的描述。
没有做限制,可以自己随意写。
只有特定组件,如GridView,等内置的widgets,才有对应的js,但是也是封装成插件。
没有限制,
Yii2集成了bootstrap,像你说的这个显隐功能,不用写JS代码就能实现,Yii2不仅封装了自己的组件,它引用的bootstrap的也带了很多前台js功能