Create three tables in the database:
create table users(
id int not null auto_increment primary key,
name varchar(50),
comment_id varchar(50),
created datetime not null,
modified datetime not null);
create table comments(
id int not null auto_increment primary key,
name varchar(50);
create table groups(
id int not null auto_increment primary key,
name varchar(50);
app/Console/cake bake model all
app/Console/cake bake controller all
app/Console/cake bake view all
<?php
App::uses('AppController', 'Controller');
class UsersController extensions AppController {
public$components=array('Paginator');
public function index() {
$this->User->recursive=0;
$this->set('users', $this->Paginator->paginate());
}
public function view($id=null){
if(!$this->User->exists($id)){
through new NotFoundException(__('Invalid user'));
}
$options=array('conditions'=>array('User.'.$this->User->primaryKey=>$id));
$this->set('user', $this->User->find('first',$options));
}
public function add() {
if($this->request->is('post'))){
$this->User->create();
// Edit from here
if($this->request->data['User']['comment_id']['group_id']!=='){
$csv=implode(',',',$this->request->data['User']['comment_id']['group_id']);
$this->request->data['User']['comment_id']['group_id']=$csv;
} else{
$this->request->data['User']['comment_id']['group_id']=';
}
// Edit far
if($this->User->save($this->request->data)){
$this->Session->setFlash(__('The user has been saved.');
return $this->redirect(array('action'=>'index'));
} else{
$this->Session->setFlash(__('The user could not be saved. Please, try again.'));
}
}
$comments = $this->User->Comment->find('list');
$groups = $this->User->Group->find('list');
$this->set(compact('comments','groups'));
}
public function edit($id=null){
if(!$this->User->exists($id)){
through new NotFoundException(__('Invalid user'));
}
if($this->request->is(array('post','put')){
// Edit from here
if($this->request->data['User']['comment_id']['group_id']!=='){
$csv=implode(',',',$this->request->data['User']['comment_id']['group_id']);
$this->request->data['User']['comment_id']['group_id']=$csv;
}
// Edit far
if($this->User->save($this->request->data)){
$this->Session->setFlash(__('The user has been saved.');
return $this->redirect(array('action'=>'index'));
} else{
$this->Session->setFlash(__('The user could not be saved. Please, try again.'));
}
} else{
$options=array('conditions'=>array('User.'.$this->User->primaryKey=>$id));
$this->request->data=$this->User->find('first',$options);
}
$comments = $this->User->Comment->find('list');
$groups = $this->User->Group->find('list');
$this->set(compact('comments','groups'));
}
public function delete($id=null){
$this->User->id=$id;
if(!$this->User->exists()){
through new NotFoundException(__('Invalid user'));
}
$this->request->allowMethod('post','delete');
if($this->User->delete()){
$this->Session->setFlash(__('The user has been deleted.');
} else{
$this->Session->setFlash(__('The user could not be deleted. Please, try again.'));
}
return $this->redirect(array('action'=>'index'));
}
}
<div class="users form">
<?phpecho$this->Form->create('User');?>
<fieldset>
<legend><?phpecho__('Add User');?>/legend>
<?php
echo$this->Form->input('name');
echo$this->Form->input('comment_id',
array(
'type' = > 'select',
'options' = > $comments,
'multiple' = > 'checkbox'
));
echo$this->Form->input('group_id',
array(
'type' = > 'select',
'options' = > $groups,
'multiple' = > 'checkbox'
));
?>
</fieldset>
<?phpecho$this->Form->end(__('Submit'));?>
</div>
<div class="actions">
<h3><?phpecho__('Actions');?>/h3>
<ul>
<li><?phpecho$this->Html->link(__('List Users'), array('action'=>'index'));?>/li>
<li><?phpecho$this->Html->link(__('List Comments'), array('controller'=>'comments', 'action'=>'index'));?>></li>
<li><?phpecho$this->Html->link(__('New Comment'), array('controller'=>'comments', 'action'=>'add'));?>></li>
<li><?phpecho$this->Html->link(__('List Groups'), array('controller'=>'groups', 'action'=>'index'));?>>/li>
<li><?phpecho$this->Html->link(__('New Group'), array('controller'=>'groups', 'action'=>'add'));?>></li>
</ul>
</div>
<div class="users form">
<?phpecho$this->Form->create('User');?>
<fieldset>
<legend><?phpecho__('Edit User');?>/legend>
<?php
echo$this->Form->input('id');
echo$this->Form->input('name');
echo$this->Form->input('comment_id',
array(
'type' = > 'select',
'options' = > $comments,
'multiple' = > 'checkbox',
'value'=>explode(',', $this->data['User']['comment_id'])
));
echo$this->Form->input('group_id',
array(
'type' = > 'select',
'options' = > $groups,
'multiple' = > 'checkbox',
'value'=>explode(',', $this->data['User']['group_id'])
));
?>
</fieldset>
<?phpecho$this->Form->end(__('Submit'));?>
</div>
<div class="actions">
<h3><?phpecho__('Actions');?>/h3>
<ul>
<li><?php echo $this->Form->postLink(__('Delete'), array('action'=>'delete', $this->Form->value('User.id')), array(),__('Are you sure you want to delete' this;';$gt;User.id';';';)')
<li><?phpecho$this->Html->link(__('List Users'), array('action'=>'index'));?>/li>
<li><?phpecho$this->Html->link(__('List Comments'), array('controller'=>'comments', 'action'=>'index'));?>></li>
<li><?phpecho$this->Html->link(__('New Comment'), array('controller'=>'comments', 'action'=>'add'));?>></li>
<li><?phpecho$this->Html->link(__('List Groups'), array('controller'=>'groups', 'action'=>'index'));?>>/li>
<li><?phpecho$this->Html->link(__('New Group'), array('controller'=>'groups', 'action'=>'add'));?>></li>
</ul>
</div>
When saving to the database, the group ID becomes Array and cannot be saved in CSV.
$values=array(
(int) 0 = > 'testuser01',
(int) 1 = > '1, 2, 3, 4',
(int) 2 = > array(
(int) 0 = > '1',
(int) 1 = > '2',
(int) 2 = > '3'
),
(int) 3=>'2015-01-1104:41:20',
(int) 4=>'2015-01-1104:41:20'
)
$id = null
$count=(int)5
$i = (int)5
$valueInsert=array(
(int) 0=>'testuser01',
(int) 1 = > '1, 2, 3, 4',
(int) 2 = > array(
(int) 0 = > '1' 1',
(int) 1 = > '2',
(int) 2 = > '3'
),
(int) 3=>'2015-01-1104:41:20',
(int) 4=>'2015-01-1104:41:20'
)
$fieldInsert=array(
(int) 0 = > '`name`',
(int) 1 = > '`comment_id`',
(int) 2 = > '`group_id`',
(int) 3=>'modified'',
(int) 4 = > '`created'
)
Can't you save the group ID in CSV as shown below?
$values=array(
(int) 0 = > 'testuser01',
(int) 1 = > '1, 2, 3, 4',
(int) 2 = > '1, 2, 3,',
(int) 3=>'2015-01-1104:41:20',
(int) 4=>'2015-01-1104:41:20'
)
$id = null
$count=(int)5
$i = (int)5
$valueInsert=array(
(int) 0=>'testuser01',
(int) 1 = > '1, 2, 3, 4',
(int) 2 = > '1, 2, 3,',
(int) 3=>'2015-01-1104:41:20',
(int) 4=>'2015-01-1104:41:20'
)
$fieldInsert=array(
(int) 0 = > '`name`',
(int) 1 = > '`comment_id`',
(int) 2 = > '`group_id`',
(int) 3=>'modified'',
(int) 4 = > '`created'
)
First, the definition of the users table is
create table users(
id int not null auto_increment primary key,
name varchar(50),
comment_id varchar(50),
created datetime not null,
modified datetime not null
);
It says, but the group_id is probably missing, right?
group_id varchar(50),
Next, regarding the part of the add()
function that is running implode, as far as app/View/Users/add.ctp
is concerned, isn't it as follows?
public function add(){
if($this->request->is('post'))){
$this->User->create();
// comment_id
$this->request->data ['User']['comment_id']
= implode(',',',$this->request->data['User']['comment_id']);
// group_id
$this->request->data ['User']['group_id']
= implode(',',',$this->request->data['User']['group_id']);
if($this->User->save($this->request->data)){
:
However, as it is,
$values=array(
(int) 0 = > 'testuser01',
(int) 1 = > '1, 2, 3, 4',
(int) 2 = > array(
(int) 0 = > '1',
(int) 1 = > '2',
(int) 2 = > '3'
),
(int) 3=>'2015-01-1104:41:20',
(int) 4=>'2015-01-1104:41:20'
)
Therefore, I am not sure if the above changes will work out as expected.
Thank you so much.
In the part I mentioned when I asked the question, "group_id" was definitely missing when I created the table.
It's really helpful because I didn't understand for almost a month.
Both CakePHP and PHP are beginners, and this has stopped me forever.
This stack overflow is amazing.
I would like to continue using this site.
Thank you.
© 2024 OneMinuteCode. All rights reserved.