2017-05-29 19 views
0

我搜索了類似的問題,但似乎沒有一個符合我打算執行的操作。我有一個隱藏部分的表單,只有在選擇了一個選項時纔會顯示。我不希望我的控制器擔心這個隱藏部分的值,如果它隱藏的(這意味着沒有用戶輸入是因爲用戶沒有看到它)。但是如果有輸入,那麼控制器應該處理請求值。下面是代碼如何在Laravel控制器中使用if語句來請求表單值

<form class="form-horizontal" role="form" method="POST" action="/employees"> 
{{ csrf_field() }} 

<div class="panel-title">Employee Details</div><br> 

<div class="form-group"> 
    <label for="firstname" class="col-md-4 control-label">Firstname</label> 

    <div class="col-md-6"> 
     <input id="firstname" type="text" class="form-control" name="firstname" value="{{ old('firstname') }}" required autofocus> 
    </div> 
</div> 

<div class="form-group> 
    <label for="lastname" class="col-md-4 control-label">Lastname</label> 

    <div class="col-md-6"> 
     <input id="lastname" type="text" class="form-control" name="lastname" value="{{ old('lastname') }}" required autofocus> 
    </div> 
</div> 

<div class="form-group}"> 
    <label for="department" class="col-md-4 control-label">Department</label> 

    <div class="col-md-6"> 
     <select name="department" id="dept" class="form-control" required autofocus> 
      <option class="text-muted">-- Select Department --</option> 
      <option value="administration">Adminstration</option> 
      <option value="worker">Worker</option> 
     </select> 
    </div> 
</div> 


<div class="col-md-12" id="teacred"> 
    <div class="panel-title">Create Teacher Authentication</div><br> 

    <div class="form-group"> 
     <label for="username" class="col-md-4 control-label">Username</label> 

     <div class="col-md-6"> 
      <input id="username" type="username" class="form-control" name="username" value="{{ old('username') }}"> 
     </div> 
    </div> 

    <div class="form-group"> 
     <label for="password" class="col-md-4 control-label">Password</label> 

     <div class="col-md-6"> 
      <input id="password" type="password" class="form-control" name="password"> 
     </div> 
    </div> 

    <div class="form-group"> 
     <label for="password-confirm" class="col-md-4 control-label">Confirm Password</label> 

     <div class="col-md-6"> 
      <input id="password-confirm" type="password" class="form-control" name="password_confirmation"> 
     </div> 
    </div> 
</div> 

<div class="form-group"> 
    <div class="col-md-6 col-md-offset-4"> 
     <button type="submit" class="btn btn-primary"> 
      Save 
     </button> 
    </div> 
</div> 

public function store(Request $request) 
{ 
    $emp = new Employee; 

    $emp->firstname = request('firstname'); 
    $emp->lastname = request('lastname'); 
    $emp->department = request('department'); 

    $emp->save(); 

    if ($emp->department != 'administration') { 

     $user = new User; 

     $user->firstname = request('firstname'); 
     $user->lastname = request('lastname'); 
     $user->role = 'worker'; 
     $user->username = request('username'); 
     $user->password = bcrypt(request('password')); 

     $user->save(); 

     $job = new Job; 

     $job->firstname = request('firstname'); 
     $job->lastname = request('lastname'); 
     $job->subject = request('department'); 

     $job->save(); 

    } 

    return redirect('/employees'); 

} 

不幸的是我的代碼不能正常工作,從谷歌瀏覽器的web開發工具安慰返回的錯誤是

與名稱的無效表單控件= '用戶名'不可對焦。

但我沒有設置該屬性,因爲您可以從窗體中看到。我如何使它工作?

回答

1

在您的表格中;類型應該是文本沒有用戶名

<input id="username" type="username" class="form-control" name="username" value="{{ old('username') }}">

+0

謝謝!這解決了它。我也通過將我的表格分成不同的頁面來實現同樣的目的,以便當成功時重定向進入下一頁。最好的做法是,一次完成或不同步驟完成所有工作? – Mena

+0

我會說最好的做法是仔細閱讀代碼。無論是你自己還是其他人的代碼,只要你有能力閱讀代碼,你會很容易發現錯誤 –