在Cake PHP中更新现有的sql数据
Currently trying to figure out how to update existing SQL data in cake php. I have my input fields being automatically filled with preexisting data but whenever I hit save to change existing data it does nothing. NO error or warning message.
目前正试图弄清楚如何更新cake php中的现有SQL数据。我的输入字段会自动填充预先存在的数据,但每当我点击保存以更改现有数据时,它什么都不做。没有错误或警告信息。
Here is my Controller:
这是我的控制器:
public function settings()
{
$user = $this->UserAuth->getUser();
$userid = $this->UserAuth->getUserId();
//$userEntity = $this->Push->find()->where(['user_id = ' => $userid])->order('time')->toArray($this->request->data, ['validate'=>false]);
//$query = $this->Push->find('all', ['conditions' => ['Push.user_id' => $userid]])->last();
$userEntity = $this->Push->find('all', ['conditions' => ['Push.user_id' => $userid]])->last();
if($this->request->is('patch', 'post', 'put')) {
$errors = $userEntity->errors();
if($this->request->is('ajax')) {
if(empty($errors)) {
$response = ['error'=>0, 'message'=>'success'];
} else {
$response = ['error'=>1, 'message'=>'failure'];
$response['data']['push'] = $errors;
}
echo json_encode($response);exit;
} else {
if(empty($errors)) {
if(!empty($this->request->data($userEntity['iosapikey']))) {
$userEntity['iosapikey'] = $this->request->data['Push']['iosapikey'];
}
if(!empty($this->request->data['Push']['androidapikey'])) {
$userEntity['androidapikey'] = $this->request->data['Push']['androidapikey'];
}
if(!empty($this->request->data['Push']['restapikey'])) {
$userEntity['restapikey'] = $this->request->data['Push']['restapikey'];
}
if(!empty($this->request->data['Push']['segments'])) {
$userEntity['iosapikey'] = $this->request->data['Push']['segments'];
}
if(!empty($this->request->data['Push']['tags'])) {
$userEntity['androidapikey'] = $this->request->data['Push']['tags'];
}
if(!empty($this->request->data['Push']['deeplinks'])) {
$userEntity['restapikey'] = $this->request->data['Push']['deeplinks'];
}
if($this->Push->save($userEntity, ['validate'=>false])) {
$this->Flash->success(__('Push settings have been updated successfully'));
//$this->redirect(['action'=>'index', 'page'=>$page]);
} else {
$this->Flash->error(__('Unable to update push settings, please try again'));
}
}
}
} else {
if(!empty($userEntity['iosapikey'])) {
$userEntity['iosapikey'] = $userEntity['iosapikey'];
}
if(!empty($userEntity['androidapikey'])) {
$userEntity['androidapikey'] = $userEntity['androidapikey'];
}
if(!empty($userEntity['restapikey'])) {
$userEntity['restapikey'] = $userEntity['restapikey'];
}
if(!empty($userEntity['segments'])) {
$userEntity['segments'] = $userEntity['segments'];
}
if(!empty($userEntity['tags'])) {
$userEntity['tags'] = $userEntity['tags'];
}
if(!empty($userEntity['deeplinks'])) {
$userEntity['deeplinks'] = $userEntity['deeplinks'];
}
}
$this->set(compact('userEntity'));
$this->set('_serialize', ['push']);
}
This is my template:
这是我的模板:
<div class="panel-body">
<?php echo $this->element('Usermgmt.ajax_validation', ['formId'=>'editPushForm', 'submitButtonId'=>'editPushSubmitBtn']); ?>
<?php echo $this->Form->create($userEntity, ['id'=>'editPushForm', 'class'=>'form-horizontal', 'type'=>'text']);?>
<div class="form-group col-md-9 col-sm-10">
<label>iOS API Key:</label>
<div class="">
<?php echo $this->Form->input('Push.iosapikey',['type'=>'text', 'label'=>false, 'div'=>false, 'class'=>'form-control']);?>
</div>
</div>
<div class="form-group col-md-9 col-sm-10">
<label>Android API Key:</label>
<div class="">
<?php echo $this->Form->input('Push.androidapikey',['type'=>'text', 'label'=>false, 'div'=>false, 'class'=>'form-control']);?>
</div>
</div>
<div class="form-group col-md-9 col-sm-10">
<label>REST API Key:</label>
<div class="">
<?php echo $this->Form->input('Push.restapikey',['type'=>'text', 'label'=>false, 'div'=>false, 'class'=>'form-control']);?>
</div>
</div>
<div class="form-group col-md-9 col-sm-10">
<label>Segments:</label>
<div class="">
<?php echo $this->Form->input('Push.segments',['type'=>'text', 'label'=>false, 'div'=>false, 'class'=>'form-control']);?>
</div>
</div>
<div class="form-group col-md-9 col-sm-10">
<label>Tags:</label>
<div class="">
<?php echo $this->Form->input('Push.tags',['type'=>'text', 'label'=>false, 'div'=>false, 'class'=>'form-control']);?>
</div>
</div>
<div class="form-group col-md-9 col-sm-10">
<label>Deeplinks:</label>
<div class="">
<?php echo $this->Form->input('Push.deeplinks',['type'=>'text', 'label'=>false, 'div'=>false, 'class'=>'form-control']);?>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-3 col-sm-offset-2 col-sm-3">
<?php echo $this->Form->Submit(__('Save'), ['div'=>false, 'class'=>'btn btn-primary pushbutton', 'id'=>'editPushSubmitBtn']); ?>
</div>
</div>
<?php echo $this->Form->end();?>
I'm sure I have a small error somewhere I just haven't spotted yet, but having put many hours into this with no positive result I thought it was time to find some help.
我确定我在某个地方发现了一个小错误,但我已经花了很多时间才没有得到正面结果,我认为是时候寻找帮助了。
1 个解决方案
#1
-1
Cake PHP find function returns an object so i would request you to use a statement like $userEntity->iosapikey = $this->request->data['Push']['iosapikey']; to assign values and also enable debuging in cakephp https://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html#debugging-queries-and-resultsets
Cake PHP find函数返回一个对象,所以我会请求你使用像$ userEntity-> iosapikey = $ this-> request-> data ['Push'] ['iosapikey']这样的语句;分配值并在cakephp中启用debuging https://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html#debugging-queries-and-resultsets
更多相关文章
- 您是否认为PHP中的错误形式是在类方法中访问超级全局变量?
- 在数据库中存储行数或动态获取
- 我无法定义我的错误
- php中的错误级别
- 如何从databse中提取数据到2d数组中?
- fgetcsv()错误地将双引号添加到第一行的第一个元素
- php curl模拟登陆抓取数据
- 在PHP中从JSON获取数据
- 自动同步vps服务器或本地文件的数据到百度网盘