2016-10-01 3 views
1

Laravel 5.3을 사용하고 있으며 사용자가 자신의 프로필을 편집 할 수있는 양식에 대한 유효성 검사 규칙을 만들기 위해 요청한 요청 파일에서 쿼리를 만들고 싶습니다. 채널. 해당 파일에서 나는 이런 식으로 뭔가 보일 것이다 쿼리를하고 싶습니다 : 그래서 채널 ID를 얻을 규칙 배열에서 제외 할 수Laravel - 요청 파일에서 개체의 매개 변수를 가져 오는 방법

$channelId = Auth::user()->channels()->where('id', $this->id)->get(); 

을,이 파일이 모습입니다 같은 :

public function rules() 
    { 
     $channelId = Auth::user()->channels()->where('id', $this->id)->get(); 

     return [ 
      'name' => 'required|max:255|unique:channels,name,' . $channelId, 
      'slug' => 'required|max:255|alpha_num|unique:channels,slug,' . $channelId, 
      'description' => 'max:1000', 
     ]; 
    } 

요청 파일에서 업데이트되는 해당 개체의 channel id을받는 방법을 모르겠습니까?

+0

당신은 양식과 함께 보낸 ID (예 : $ this-> id로 사용하고있는 ID)를 얻는 방법을 모르십니까? – Silwerclaw

+0

네, 그게 맞습니다 – Marco

+0

당신은 입력 개체를 검색 할 수있는 내장 함수 인 $ this-> input(), $ this-> input ('id')을 사용할 수 있다는 것을 의미하는 Request 객체 안에 있습니다. 자세한 내용은 https://laravel.com/docs/5.3/requests#retrieving-input – Silwerclaw

답변

0

나는 그 문제에 대해 세션을 사용했다. 편집 기능에 키를 저장 한 다음이 쿼리를 요청한 파일에서이 쿼리를 검색하여 현재 작동하고 있으며 사용자가이를 폼에서 조작 할 수 없다. :

$channel = Auth::user()->channels()->where('id', session('channel_id'))->first(); 
0

Request 개체의 내부에서 이름이 "id"인 입력이있는 경우 $this->input("id")을 호출하여 올바르게 표시된 @Silwerclaw로 입력에 액세스 할 수 있습니다.

개체 외부에서 facade : Request::input("id")을 사용할 수 있습니다.

+0

을 읽으십시오. 문제는 양식에 ID가없는 것입니다. 어쩌면 그 일을 피할 수있는 방법이 있는지 궁금합니다. 왜냐하면 나는 ID를 조작 할 수있는 가능성을 가진 사용자를 피하고자한다. – Marco

+0

예, 숨겨진 입력을 할 수 있습니다 :'' – MrPixelDream

+0

그래, 그걸 피할 ​​수 있었으면 좋겠다. – Marco

관련 문제