2014-09-25 68 views
2

我有一個控制器,從一個接收輸入。我的控制器在不同的功能中處理創建更新創建輸入::得到可重用的數組(Laravel 4)

是否有這樣我就不必重複在相同的代碼波紋管創建更新,我可以創造各種各樣的,我就可以在這兩個位置調用的陣列/功能方式功能?

$client->company_name   = Input::get('company_name'); 
$client->telephone    = Input::get('telephone'); 
$client->website    = Input::get('website'); 
$client->building_name   = Input::get('building_name'); 
$client->street_address   = Input::get('street_address'); 
$client->town     = Input::get('town'); 

我已經創建了規則數組(下面),我只需要嘗試對輸入值做同樣的操作。

/** 
* create the validation rules for database input 
* 
* @return array 
*/ 
private function rules() 
{ 

    $rules = array(
     'company_name'  => 'required', 
     'telephone'   => 'required', 
     'website'   => 'url', 
     'building_name'  => '', 
     'street_address' => '', 
     'town'    => '', 
    ); 

    return $rules; 

} 

謝謝大家,我很感激任何幫助。

+0

是的,你可以。但是完全是你的問題?你有什麼問題?你有什麼問題? – 2014-09-25 18:31:12

+0

感謝Marcin的快速反應。我試圖阻止在兩個不同的函數中重複相同的代碼兩次,所以我需要一個方法,允許我創建一次(上面的第一個代碼塊),然後在2個獨立的函數中調用它。 – Deano 2014-09-25 18:42:20

回答

1

如果我理解你很好,你需要使用此功能

function modifyClient($client) { 

    $client->company_name   = Input::get('company_name'); 
    $client->telephone    = Input::get('telephone'); 
    $client->website    = Input::get('website'); 
    $client->building_name   = Input::get('building_name'); 
    $client->street_address   = Input::get('street_address'); 
    $client->town     = Input::get('town'); 

} 

,如果你創建新的客戶端可以使用:

$client = new Client; 
modifyClient($client); 

,如果你修改,你可以這樣做:

$client = Client::find($id); 
modifyClient($client); 

並且在他們兩人之後,您可以使用

將其保存到數據庫中
$client->save(); 
+0

搖滾明星!謝謝Marcin,那100%的工作! – Deano 2014-09-25 19:42:25