2014-04-24 1 views
2

페이지로드시 textarea 필드가있는 양식이 있습니다. 테이블에서 세부 정보를 가져옵니다 (처음으로 빈 상태로 표시됨). 처음에는 테이블에 레코드가 없음), 해당 페이지가 다시로드되고 데이터베이스에서이 필드의 값을 다시 얻은 후에 해당 필드의 값을 데이터베이스에 삽입하는 데 사용되는 업데이트 버튼이 있습니다. 해당 필드의 값을 클릭하여 업데이트 버튼을 클릭하면 해당 필드의 값이 데이터베이스에서 업데이트되고 데이터베이스에서 해당 세부 정보를 가져와야합니다.laravel의 동일한 컨트롤러에서 INSERT 또는 UPDATE 명령을 사용하는 방법

그러면 어떻게하면 해당 업데이트 버튼에서 동일한 컨트롤러를 사용하여 데이터베이스에 값을 삽입 한 다음 데이터베이스의 값을 업데이트 하시겠습니까?

답변

0

을 사용하면 모델의 첫 번째 결과 또는 새 인스턴스를 얻을 수 있습니다.

그런 다음 제출 된 데이터를 인스턴스에 설정하고 save() 메소드로 인스턴스를 저장하십시오.

public class SomeController { 

    public function createOrUpdateData() { 
     $data = Model::firstOrNew(['someColumn' => $condition]); 

     // Set the model attribute from submitted data 

     $data->save(); 

     return Redirect::back(); 
    } 

} 
0

get 경로로 리디렉션되기 전에 POST 함수에서 새로 생성 된 레코드의 ID를 검색하여 뷰에 전달하십시오. 데이터가 비어있는 경우 텍스트 입력에서 액세스 할 수있는 널 값을 전달하면 다음 POST 기능에서 검색 할 수 있습니다. 다음과 같은 내용 :

// Controller 
public function getIndex() 
{ 
$data = Model::first(); 
if ($data) 
{ 
$value = $data->column_that_you_need; 
} 
else 
{ 
$value = ""; 
} 

return View::make('your.view', compact('value')); 
} 

public function postIndex() 
{ 
// validate 
$post = new Model; 
$post->column = Input::get('your_input'); 
$post->save; 
return Redirect::to('/your_route_for_index'); 
} 

// your view 
<input type="text" value="{{{$value}}}"/> 
관련 문제