2014-04-16 67 views
0

我正在使用ORM將用戶註冊數據保存到數據庫中。代碼如下。Kohana - 在ORM之前向查詢添加值:保存

if ($_POST) { 
    $user = Model::factory('member'); 
    $post = $user->validate_create($_POST); 
    if ($post->check()) { 
     $user->values($post); 
     $user->save(); 
     // redirect to create gallery. 
    } 
} 

我有一些值,如UserType這不是$_POST的一部分,但必須被保存在members表作爲用戶註冊的一部分。是否更改$post的值並將UserType添加到該值或者是否有其他推薦的方法來實現此目的?

回答

0

可以改變$post,因爲它只是一個數組,其中的值是從請求中取出的。

您可以通過編輯$post數組做到這一點:

$post['usertype'] = 'customer'; 
$user->values($post); 
$user->save(); 

或者你可以將該值設置爲直接您的ORM對象:

$user->values($post); 
$user->usertype = 'customer'; 
$user->save(); 

雙方應罰款

0

你可以在表單中使用隱藏的輸入。例如:

Form::hidden('usertype', 'customer'); 

如果您不想更改$ _POST數組。 如果您要確認用戶發送$ _ POST請求,請使用Kohana中的方法:

if($this->request->method() === Request::POST) {} 

代替:

if($_POST) 

順便說,以這種方式獲得了$ _ POST數據:

$post = $this->request->post(); 
相關問題