2017-04-21 131 views
1

我有一個文本框,我試圖用來搜索數據庫,我試圖實現的是當我輸入日期(例如14/06/1996)放入文本框(searchdob)中,它將在數據庫中顯示具有此出生日期值的用戶。我試過使用我的AppointmentController來執行where條件,以便foreach循環保持整潔。Laravel-MYSQL搜索數據庫中的值,然後顯示它們

錯誤是:非靜態方法的Symfony \分量\ HttpFoundation \支持::獲得()不應該被靜態調用,在不兼容的情況下假設$此

AppointmentController

function addAppointment() 
{ 
    $doctors = Doctor::all(); 
    $search = Request::get('searchdob'); 
    $users = User::where('role', '=', 1) 
        ->where('dateofbirth', 'LIKE', '%'.$search.'%') 
        ->get(); 

    return view('appointment/addappointmentform',['users'=>$users],['doctors'=>$doctors]); 
} 

addappointment.blade

<form> 
    Insert Patients date of birth 
    <input 
    type="text" 
    name="searchdob" 
    id="searchdob" 
    placeholder="dd/mm/yyyy" 
    onkeyup=" 
     var v = this.value; 
     if (v.match(/^\d{2}$/) !== null) { 
      this.value = v + '/'; 
     } else if (v.match(/^\d{2}\/\d{2}$/) !== null) { 
      this.value = v + '/'; 
     }" 
    maxlength="10" 
></form> 


    <fieldset> 
<legend>Select the Patient</legend> 
@foreach($users as $user) 
    <div> 
     <label for="dirBtn{{$user->id}}"> 
     <input id="dirBtn{{$user->id}}" type="radio" name="user" value="{{$user->id}}"> 
     {{$user->firstname}} 
     </label> 
    </div> 
@endforeach 
</fieldset> 

回答

2

將其更改爲:

$search = request('searchdob'); 
+0

這就解決了這個問題謝謝,我現在已經意識到我的foreach循環是錯誤的,而不是顯示帶插入日期的用戶,它讓每個用戶都在數據庫中,我應該刪除控制器中的where語句並嘗試類似於foreach循環的東西? – TF120

+0

如果你想按照出生日期來過濾用戶,你應該把這個列添加到'$ dates'模型​​屬性中,並做這樣的事情' - > whereDate('dateofbirth',Carbon :: parse(request('searchdob')) ))' –

+0

對不起......我有點困惑,我沒有日期模型,我有一個用戶模型,我應該把它放在那裏嗎? – TF120

相關問題