照着教程,找遍了web目录斗没发现,刚学YII2,就被卡住了
命令行切换到 项目根目录下 ,就是 WEB 目录的上一级,然后执行
然后选择 0 ,开发模式。再 yes 接下来 Yii 和你的互动。就可以了。
init.bat文件
照着教程,找遍了web目录斗没发现,刚学YII2,就被卡住了
命令行切换到 项目根目录下 ,就是 WEB 目录的上一级,然后执行
然后选择 0 ,开发模式。再 yes 接下来 Yii 和你的互动。就可以了。
init.bat文件
使用yii2发送邮件的时候,出现了这个问题,有知道解决办法或遇到过相同的情况的吗?求助。
是这样的吗?不应该是下面这样?
$mailer = Yii::$app->mailer;
$mailer->compose();
$mailer->setFrom("15239114700@163.com");
vendor/swiftmailer
这个包在不在,不在安装之,在则检查一下你的composer的autoload,看看为啥没有自动加载..
使用 Bootstrap File Input 插件上传图片
使用 ajax 异步上传,
希望所有上传的图片全部使用一个上传地址
服务端的代码不知怎么处理 ?
备注: 不想使用 最原始的 $_FILES 来处理,
视图:
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">缩略图:</label>
<div class="col-sm-10">
<input id="input-700" name="Articles[thumb]" type="file" multiple >
</div>
</div>
<script>
$("#input-700").fileinput({
language: "zh",
allowedFileExtensions : ['jpg', 'jpeg', 'png','gif'],
uploadUrl: "<?= Url::toRoute('/upload/index');?>", // server upload action
uploadAsync: true,
maxFileSize: 1000,
maxFileCount: 5
});
</script>
控制器:
public function actionIndex()
{
$response = [];
if (Yii::$app->request->isPost) {
$model = new UploadForm();
$model->images = UploadedFile::getInstance($model, 'thumb');
$response['images'] = $model->images;
$response['url'] = $model->upload();
$response['id'] = Yii::$app->request->post('id');
$response['file'] = $_FILES;
$response['post'] = Yii::$app->request->post();
}
echo Json::encode($response);
}
关键点 主要是
$model->images = UploadedFile::getInstance($model, 'thumb'); 中的2个参数 $model, 'thumb'
没搞懂,不知道怎么写,
目前 $model->images 为 NULL
求指点 。。。
我看了你的代码,视图里边,如果不要多文件上传,就把multiple去掉,万一有人一次选多张,就只能上传最后一张。
$model->images 为 NULL 说明你提交的信息没获取到。html部分的代码写的有问题,应该这样写:
控制器里边的代码分析:
我修改了一下你的代码,如下:
UploadForm里边的代码你可以参考一下这个,做一些修改就好了:
我通过查看文档的多文件上传,觉得你可以尝试下修改两个地方:
问题解决了吗?
被你的思路带偏了。图片上传一个方法就能搞定了。如果你有不同的表单要保存不同的图片,最好的做法是把文件上传的name值都写成一样的,调用一个方法ajax上传图片,完成以后,返回一个文件id,或者图片路径,用ajax把返回的值放到隐藏域里边,最后跟表单一起提交就行了。这样就获得了保存了图片的信息。也不用写多个接收文件上传的代码。如果还有问题可以跟我联系~~~~
我想在传入_list的页面中,再加一个变量怎么做
<?php echo \yii\widgets\ListView::widget([
'dataProvider' => $modelBlog,
'itemView' => '_list',
]);
有个viewParams参数项:
unable to write the file '***/frontend/models/CountrySearch.php'
unable to write the file '***/frontend/views/country/_form.php'
等等
给文件夹读写权限
再生成一次可以吗?
比如,菜单,网站底部信息,这些是在每个action下都要有的,每次都读取太麻烦,该怎样部署才方便。
这个不是该丢到公共模板下?
yii默认的结构就是这样的。
新手上路,望大神帮助一下
不是写得很清楚吗? /yiisoft/yii2-jui ,前面的$vendorDir 一般指的是要目录下的vendor文件夹。连起来就是vendor/yiisoft/yii2-jui
登录方式是不是一共有三种?一种是账号密码,一种是cookie,一种是token。
账号密码登录我能理解,但是cookie登录,YII2具体是怎么实现的呢?
我大概步骤是能了解,就是把弄个认证类,然后认证类里就写getAuthKey()
和validateAuthKey($authKey)
,然后就能实现自动登录?那cookie的时间怎么设置的呀?。。。。。。我很懵逼呀,求大神帮忙,给我一个连接,我自己去看也成,我实在找不到了。最好是连认证,授权一起给我讲一下,或者给我丢个连接,我自己看,文档我看了N遍了,过程我能理解,就是不知道具体实现。
先说自动登录,cookie在哪里设置的,允许自动登录必须得启用enableAutoLogin,设置为true
然后看登录,在你的LoginFrom中的login方法有这么一行代码:
也是真正执行登录操作的代码,他实际上调用的是\yii\web\User的login方法,这个类的实际路径在:盘符/项目名/vendor/yiisoft/yii2/web/User.php
首先执行登录之前的操作,然后,关键是$this->switchIdentity($identity, $duration)这个方法:
在$this->sendIdentityCookie($identity, $duration);这里把cookie设置进去
Yii::$app->getResponse()->getCookies()->add($cookie); 这里设置cookie
到这里,应该解决了cookie的设置的问题了吧。
然后说说自动登录的实现
在SiteController中的actionLogin()方法,他判断这个用户是不是登录用户,如果不是,则返回主页或者说登录页
还是走到\yii\web\User这个类,调用了getIsGuest()方法,getIsGuest()方法调用getIdentity($autoRenew = true)方法
是否开启自动登录($this->enableSession && $autoRenew),是,那么执行renewAuthStatus()方法:
启用自动登录$this->enableAutoLogin为true,然后判断是否是访客$this->getIsGuest(),如果是,则执行登录,从cookie登录$this->loginByCookie();这就是cookie登录的具体实现
$identity = $class::findIdentity($id);//根据cookie保存的记录id在数据库中找,这里调用的是在配置文件中main.php配置的
common\models\User这个类的findIdentity($id)方法
if ($identity->validateAuthKey($authKey)) {} 则调用 common\models\User这个类的validateAuthKey($authKey)方法,实际上就是判断这个记录id的auth_key这个数据库的值是否跟保存到cookie中的一样,如果一样,返回true。
目的是,所以,如果管理员要修改一个帐号的密码,实际上出了修改他的密码password_hash之外,还需要修改auth_key,否则他如果以前登录过。cookie有值,一样可以正常登录。这点很重要
然后就没啥好说的拉,就是正常的登录流程拉,个人建议,好好利用ide的debug功能,跟踪代码绝对杠杠的
完整的具体实现在高级版脚手架那块。
按照你所理解的登录,是两种。token是验证 API 授权才需要用到的。
你可以参考这个连接http://www.yiichina.com/tutorial/965,它拥有无比完整的代码。然后把登录流程看一遍(在vendor目录下的代码可以不用看),再结合权威指南的安全-》认证那块。你上述的所有问题必定都可以在这两块得到解决。
common/models/LoginForm.php里面
Uncaught Error: Call to a member function getDb() on null
如果使用common里面的数据库配置 则报错
我只能设置vendor/yiisoft/yii2/db/ActiveQuery.php
中的$db;
public static function getDb()
你配置有问题吧,数据库前缀考虑了没,
config/db,配置有错?
方便的话希望能给出更多的信息
否则我们从一开始就只能凭借经验来解答了,结果就是配置有问题。。。
代码贴出来啊
应该是数据库的配置问题!
哪里有比较好的商城模版,只要静态页就可以了
这是我练习中所使用的一款商城模版,不知道能不能满足你的需求。
链接:http://pan.baidu.com/s/1eRJaqCa 密码:2rlq
其实百度一下还是蛮多的。
静态的,去淘宝扒怎样?
淘宝买 几块钱一堆
。。。。。。。。。。。