dingjj2010
Post::deleteAll(['and', 'id=:id', 'pid=:id'], [':id' => $id]);
要满足2个条件,'id=:id' and 'pid=:id'Post::findOne($id)->delete();
满足一条。'id=:id'
先确认下pid是不是等于id。- dingjj2010 回答了问题 如何把cookie里面的解码出来
这个是有通过密匙加密的,密匙一般配置在components->request->cookieValidationKey,没有密匙解密。。。就不在我们研究范围了。
至于解密的过程你可以查看yii\web\Request下的getCookies方法,看他怎么解密的。 - dingjj2010 2015-11-02 已签到连续签到1天,获得了5个金钱
- dingjj2010 回答了问题 where条件查询怎么写
这问题有点莫名其妙的。
要查询表2的数据你直接查就好了。。要model_id一样 你条件直接model_id=多少,你传进去就好了。。。
要所有根据表1的id分组,你直接查表1,然后用你的hasMany就好了。每个hasMany查出来的就是model_id相同的一类了。 首先$model->attributes = $_POST['Cate'],attributes是所有字段名称的集合,你把post内容放进去有什么用。再怎么也应该是$model->setAttributes($_POST['Cate']);
再,返回502,这个你最好贴一下log,不错我猜测是你save完成之后,就没有动作了。一般form提交的,成功或失败要跳转显示相应的页面,或者ajax要返回save后成功或者失败的值。- dingjj2010 回复了 bryson 的回答
你應該先var_dump models 看看內容是甚麼!!
hasMany : 一對多 => 一個客戶可以有很多訂單
hasOne : 一對一 => 一個訂單只能有一個客戶把兩張 table join 起來:
use app\models\Order; class Customer extends model { public function getOrder() { return $this->hasMany(Order::classname(), ['id' => 'order_id']); } } use app\models\Customer; class Customer Controller extends Controller { $customer = Customer::find()->joinwith('order')->all(); return $this->render('index',['customer' => $customer]) } HTML : 一對多的狀況 foreach($customer as $key => $val){ // $val->id; //各自的 customer['id'] foreach($val['order'] as $or_key => $or_val){ $or_val; //訂單的資訊 } }
@drykiss 你的orders 是复数。。。估计是1对多,查询出来的。hasMany查询出来的即使也是只有一条数据,也要用orders[0]来获取。这么说吧:hasMany查询出来的本身就是个数组,查询出来的记录在数组里面,如[model1,model2],即使1条也是[model1]。hasOne查询出来就是一个记录,如:model1。
首先:需要用
<?php echo $orders->id; ?>
取值。因为取出的是类,不是数组。类属性获取用->
其次,获取数组形式的方式有两种,一种是在查询的时候,例如customer::find()->where($where)->with('order')->asArray()->all();
返回的是数组形式,一种是获取了之后再转成数组,例如$customer = customer::findOne($where);$order = $customer->order;$orderArr = $order->toArray();
- dingjj2010 2015-10-30 已签到连续签到4天,获得了20个金钱
- dingjj2010 2015-10-29 已签到连续签到3天,获得了15个金钱
- dingjj2010 回复了 dingjj2010 的回答
1.按照权威指南解释:yii\web\IdentityInterface::getAuthKey():获取基于 cookie 登录时使用的认证密钥。 认证密钥储存在 cookie 里并且将来会与服务端的版本进行比较以确保 cookie的有效性。具体引用位置在yii\web\user里面loginByCookie方法。
2.需要在你的用户表里面添加这一个字段。
3.直接返回id肯定是会出问题的,就比如你validateAuthKey()的时候就会出错,除非你authkey字段存的就是id的值。所以尽量是存的时候就用Yii::$app->security->generateRandomString()获取随机字符。
4.getAuthKey(),应该返回AuthKey。@cristalblock 估计是你没有用到loginByCookie,其他方式不会调用到这些方法。