2015-04-07 7 views
0

То, что я пытаюсь сделать, это создать новую учетную запись пользователя. вход, теперь у меня есть некоторые из этих рабочих, но, похоже, не может спасти мою компанию в том, как говорят новые документы.CakePHP 3.0 Сохранение моих связанных данных

Теперь я не уверен, что я просто не понимаю документы на сайте CakePHP, но я не могу сохранить связанные данные в новую таблицу, а затем получить свой идентификатор, который будет помещен в таблицу моих пользователей.

Так что мой код

public function add() { 
    $this->loadModel('Companies'); 
    $user = $this->Users->newEntity(); 
    // $company = $this->Companies->newEntity(); 

    if ($this->request->is('post')) { 
     //$company = $this->Companies->patchEntity($company, $this->request->data['company']); 
     $user = $this->Users->patchEntity($user, $this->request->data, [ 'associated' => 'Company.name' ]); 

     //debug($company); 
     debug($this->Users->save($user)); 
     die(); 

     if ($this->Companies->save($company)) { 
      debug($company); 
      debug($user); 
      die(); 

      if ($this->Users->save($user)) { 
       $this->Flash->success('The user has been saved.'); 
       return $this->redirect(['action' => 'index']); 
      } else { 
       $this->Flash->error('The user could not be saved. Please, try again.'); 
      } 

     } //End of 'save' for company name 


    } 

    $userlevels = $this->Users->Userlevels->find('list', ['keyField' => 'id', 'valueField' => 'usertitle']); 

    $this->set(compact('user', 'userlevels')); 
    $this->set('_serialize', ['user']); 
} 

МОЯ база данных, которая является MySQL, имеет таблицу пользователей с полем «company_id» в нем. Таким образом, я сделал тест и взял название компании, которое вводит пользователь в мою форму, и сохраните ее, если я отлаживаю, что он сохраняет все в порядке и возвращает мне новый идентификатор сохраненных данных в разделе properties.

Но из того, что я читал, я мог бы сэкономить, что в пределах моего пользователя сохранить? Я все еще добавил модель компаний, не уверен, что мне это нужно?

Но когда я отлаживаю сохранение пользователю, он сохраняет пользователя, но не новую компанию?

Я могу опубликовать другие данные, если необходимо, но этот код, как только что был отредактирован немного от того, что торчит пирог. Я изменил форму ввода в моей компании на $this->Form->input('company.name');

Таким образом, конечная цель заключается в том, чтобы сохранить данные пользователя в новом пользователе и сохранить название компании в новой записи компании.

Так что я делаю неправильно?

Пожалуйста, будьте добры, когда читаете мой вопрос, я дислексичен, поэтому я, возможно, не объяснил все правильно, пожалуйста, скажите мне, нужно ли мне пересказывать, расширять то, что я сказал, большое спасибо за понимание. ...

ответ

1

Хорошо, кажется, я решил свою проблему, но не уверен, что это лучшее решение. Поэтому, если у кого-то другой метод, пожалуйста, дайте мне знать.

Итак, я перечитываю документы торта (снова ...) и вытаскивает TableRegistry, и это, похоже, сработает.

Так что мой код в настоящее время,

$UserData = TableRegistry::get('Users'); 
$user = $UserData->newEntity($this->request->data); 

if ($this->request->is('post')) { 

    debug($UserData->save($user)); 

} 

Это экономит новое название компании, в моей таблице компаний и помещает идентификатор в моей таблице пользователей. Необходимо больше тестирования, но я подумал, что я опубликую это, чтобы: a) получить некоторую обратную связь, чтобы убедиться, что это действительно так, нужно делать б), чтобы помочь кому-то еще взглянуть на это.

Спасибо,

+0

вы также можете использовать '$ this-> loadModel ('Пользователь')' в контроллере, а затем использовать '$ this-> Users' переменный –

Смежные вопросы