2017-03-11 17 views
0

我想創建一個程序,其他用戶可以使用其他已註冊用戶的鏈接註冊。所以,當一個人被提及,這是如何url看起來像如何在Laravel中創建推薦計劃?

mywebsite.com/register?ref_id=555 // ref_id is existing user id 

我使用默認的Laravel身份驗證。有一個隱藏的輸入值,如果它存在,將包含值ref_id。我的數據庫有一個名爲referred_by的列,它是INT,默認設置爲null。當有人使用ref_id鏈接進行註冊時,該ID將被保存到該用戶行中。 但問題是它每次都被保存爲空。

這是驗證怎麼看起來像Auth/RegisterController.php

protected function validator(array $data) 
{ 
    return Validator::make($data, [ 
     'first_name' => 'required|max:40', 
     'last_name' => 'required|max:40', 
     'email' => 'required|email|max:255|unique:users', 
     'account_name' => 'required|max:80', 
     'account_number'=> 'required|max:15', 
     'bank_name'=> 'required|max:30', 
     'phone_number' => 'required|max:15', 
     'ref_id' => 'nullable|numeric', 
     'username' => 'required|max:15|unique:users', 
     'password' => 'required|min:6|confirmed', 
    ]); 
} 

,這是怎樣的創建方法看起來像

由於REF_ID保存在隱藏的輸入字段作爲字符串,我嘗試將其轉換爲一個整數,然後再放入數據庫中,但我無法使其正常工作。 我真的很困惑我如何才能做到這一點。 請幫幫我。 在此先感謝。

+1

你確定所有這些都在用戶模式'$ fillable'? – upful

+0

首先檢查數據是否有'dd($ data)'的ref_id,如果是,那麼檢查referenced_id是否在用戶模型的'$ fillable'中 – Paras

+0

是的,它們是可填充的。這就是數組看起來像protected $ fillable ='first_name','last_name','email','account_name','account_number','bank_name','referenced_by','用戶名','phone_number','密碼', ]; @upful –

回答

2

你創建函數'referred_id' => (int)$data['ref_id'], 但你的列名是referred_by,所以只是改變referred_idreferred_by

+0

非常感謝。似乎是這個問題。這是一個愚蠢的錯誤,我花了3個小時像一個白癡。非常感謝您指出錯誤並幫助我。好像我走在正確的道路上。 –

+0

很高興幫助,歡呼! – Paras