2015-01-19 2 views
4

저는 Laravel을 (를) 처음 사용하는 초보자 용 자습서입니다. 그러나 튜토리얼에는 편집 레코드 섹션이 없으므로 직접 확장하려고합니다.Laravel 양식에서 변수를 전달

경로 :

Route::controller('admin/products', 'ProductsController'); 

컨트롤러 :

class ProductsController extends BaseController 
{ 

public function getUpdate($id) 
    { 
     $product = Product::find($id); 

     if ($product) { 
      $product->title = Input::get('title'); 
      $product->save(); 
      return Redirect::to('admin/products/index')->with('message', 'Product Updated'); 
     } 
     return Redirect::to('admin/products/index')->with('message', 'Invalid Product'); 
} 

..ECT... 

나는 컨트롤러가 ID 사용 요청 실현,하지만 난 형태가 게시 될 때 그것을 제품 ID를 전달하는 방법을 알아낼 수 없습니다 /도망.

양식 :

{{Form::open(array("url"=>"admin/products/update",'method' => 'get', 'files'=>true))}} 
    <ul> 
     <li> 
      {{ Form::label('title', 'Title:') }} 
      {{ Form::text('title') }} 
      {{ Form::hidden('id', $product->id) }} 

..ECT... 

{{ Form::close() }} 

내 초기 아이디어는 같은 형태의 URL 내에서 제품 ID를 통과했다 :

{{Form::open(array("url"=>"admin/products/update/{{product->id}}", 'files'=>true))}} 

하지만 그와 행운 중 하나.

내가 오류는 다음과 같습니다

Missing argument 1 for ProductsController::postUpdate() 

나는 URL에 직접 입력 흥미롭게 경우 :

http://localhost/laravel/public/admin/products/update/3 

그것은 작동 및 ID 3 항목이 변경된 괜찮습니다.

누구든지 양식을 사용하여 ID를 전달하는 방법을 알려줄 수 있습니까?

+0

을 조사 할 수 있습니다

단계 간단한 제안하여 빠른 응답 및 단계에 대한 답변을 – ITroubs

답변

5

여기 IST 첫 번째 문제 매우

감사합니다 다음

{{Form::open(array("url"=>"admin/products/update/{{product->id}}", 'files'=>true))}} 

{{product->id}}는 두 가지 방법으로 잘못된 것입니다 :

  1. {{$product->id}}
  2. 해야하지만 같으면 어쨌든 {{Form :: ...}}의 안쪽 {{..}}은 내부에 있기 때문에 인식되지 않습니다. 문자열이므로 문자열 자체의 일부입니다.

당신이 중 하나는 이런 식으로 작성해야합니다 :

{{Form::open(array("url"=>"admin/products/update/".$product->id, 'files'=>true))}} 

또는 당신은 당신의 routes.php 파일의 경로 이름을 지정하고이 방법을 수행

{{Form::open(array('route' => array('route.name', $product->id, 'files'=>true)))}} 

내가 두 번째 선호를 방법. 또한 Form Model Bingin

+0

우수, 감사를 추가했다. 첫 번째 옵션을 시도하기로 선택했지만 이름이 지정된 경로를 아직 다루지 않았습니다.이 결과는 컨트롤러 메서드를 찾을 수 없습니다. 내가 아직 명확하지 않은 부분이 있으면 올바르게 표시하겠습니까? 감사합니다 – Benji40

+0

그 오류는 컨트롤러에없는 메서드에 액세스하려고하거나 네임 스페이스가있는 컨트롤러가 있지만 해당 컨트롤러에 전체 이름으로 액세스하지 않는다는 것을 의미합니다. – ITroubs

+0

오, 신경 쓰지 마세요. 메서드 => ' 양식에 '가져 오기'(내 방법은 기본 게시물이 아니라 getUpdate) 모두 잘 수행되었습니다. 바인딩에 대한 좋은 전화를 읽어 드리겠습니다. 대단히 감사합니다. – Benji40

관련 문제