2016-10-01 17 views
1

我使用Laravel 5.3,我想提出的請求文件的查詢,我提出來有一個表單,用戶可以編輯一些驗證規則,他的渠道。在該文件中,我想作一個查詢這將是這個樣子:Laravel - 如何獲取對象的參數的請求文件

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

所以,我可以得到頻道ID和從規則陣列排除,這是文件的樣子:

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)? – Silwerclaw

+0

是的,這是正確的 – Marco

+0

你在裏面Request對象,這意味着你可以使用它的內置功能,用於檢索輸入函數:$ this->輸入(),$這個 - >輸入(「ID」)。閱讀更多在https://laravel.com/docs/5.3/requests#retrieving-input – Silwerclaw

回答

0

我曾經爲此事會議上,我已存儲在編輯功能鍵,然後在我這樣的查詢請求文件中檢索它,現在它的工作原理,以及用戶不能夠操縱它的形式:

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

當您在Request對象中時,您可以通過調用$this->input("id")來正確訪問輸入爲@Silwerclaw的輸入,其名稱爲「id」。

當對象之外,你可以使用門面:Request::input("id")

+0

問題是我沒有在表單中的ID輸入,我想知道是否有辦法避免這樣做也許,因爲我想避免用戶有可能操縱id? – Marco

+0

是的,你可以做一個隱藏的輸入是這樣的:'」>' – MrPixelDream

+0

是的,我知道,希望我能避免 – Marco