2013-08-21 1 views
1

контроллерсохранить не работает properlly

userdetails.php

class Controller_Userdetails extends Controller { 
    public function action_index() { 
     $view = new View('userdetails/index'); 
     $this->response->body($view); 
    } 
    public function action_add() {//load adddetails.php 
     $userdetails = new Model_Userdetails();   
     $view = new View('userdetails/adddetails'); 
     $view->set("userdetails", $userdetails);   
     $this->response->body($view); 
    } 
    public function action_post() {//save the post data 
     $userdetails_id = $this->request->param('id'); 
     $userdetails = new Model_Userdetails($userdetails_id); 
     $userdetails->values($_POST);  
     $userdetails->save();   
     $this->request->redirect('index.php/userdetails'); 
    } 

} 

просмотров

adddetails.php

<?php echo Form::open('userdetails/post/'.$userdetails->id); ?> 
    <?php echo Form::label("first_name", "First Name"); ?> 
    <?php echo Form::input("first_name", $userdetails->first_name); ?> 
    <br />  
    <?php echo Form::label("last_name", "Last Name"); ?> 
    <?php echo Form::input("last_name", $userdetails->last_name); ?> 
    <br /> 
    <?php echo Form::label("email", "Email"); ?> 
    <?php echo Form::input("email", $userdetails->email); ?> 
    <br /> 
    <?php echo Form::submit("submit", "Submit"); ?> 
<?php echo Form::close(); ?> 

Я пытаюсь вставить данные в database.The имя и поле электронной почты загружается правильно, если я вводить значения и нажимаю enter, он перенаправляется на другую страницу, но объекты n ot сохранено в базе данных. Нужна помощь в решении этого.

+0

Попробуйте выполнить 'try {$ userdetails-> save(); } catch (ORM_Validation_Exception $ e) {echo Debug :: vars ($ e-> errors()); умереть(); } 'Для проверки проблем проверки. – AmazingDreams

+0

Где я могу найти ошибки формы, если я использую try & catch block. – user2439275

+0

Они должны быть на странице, если есть – AmazingDreams

ответ

2

я иногда найти проблемы в экономии при использовании

$userdetails->values($_POST); 

попробовать с помощью

$userdetails->first_name = $this->request->post('first_name'); 
$userdetails->last_name= $this->request->post('last_name'); 
$userdetails->email= $this->request->post('email'); 
+0

приятное решение..и решила его .. Спасибо – user2439275

+0

в любое время^_^не забудьте принять мое решение, если не лучше, вокруг, ну, пожалуйста, 15 rep: D –

1

Предполагая, что модель является модель ORM (class Model_Userdetails extends ORM {}), вы должны использовать ORM::factory() для загрузки модели. Кроме того, рекомендуется использовать параметр expected, чтобы убедиться, что используются только значения, которые вы хотите вставить.

$user_details = ORM::factory('Userdetails'); 
$user_details->values($this->request->post(), 
    array('first_name', 'last_name', 'email') 
); 
$user_details->save(); 

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

  • Нет связанных вопросов^_^