2016-04-25 36 views
3

保存自定義的數據我想保存登記號碼的數據在我laravel項目中PHP -laravel如何從用戶輸入

Registration Number format: <dept code>-<current year>-XXX. For example, CSE-2012-001, 

這裏部門代碼將來自UI端,當用戶選擇特定的部門。 我該怎麼做。任何想法或可能的解決方案?

這裏是我的控制器:

public function saveStudent(Request $request) 
    { 
     $this->validate($request,[      
      'email' => 'required|unique:students', 
      'contact_no' => 'required|regex:/(01)[0-9]{9}/',  

      ]); 
      $student = new Student();   
      $student->name = $request->Input(['name']);  

      $student->email = $request->Input(['email']); 
      $student->contact_no = $request->Input(['contact_no']);  
      $student->address = $request->Input(['address']); 
      $student->date = $request->Input(['date']);  
      $student->department_id=$request->Input(['department_id']); 
      $student->registraion_number =    
      $teacher->save();    
      return redirect('teacherSavePage'); 
    } 

這裏是我的刀片查看:

@extends('layouts.master') 
@section('title') 
Student Registration 
@endsection 
@section('content') 
@include('partials.message-block') 
     <div class="container" > 
      <h3> Student Registration </h3> 
     {!! Form::open(array('route' => 'saveStudent','class'=>'form-horizontal','method'=>'POST')) !!} 
    {!! Form::token(); !!} 
    {!! csrf_field() ; !!} 

      <div class="form-group"> 
       <label>Name</label> 
       <input type="text" name="name" class="form-control" required placeholder="Name"> 
      </div> 

      <div class="form-group"> 
       <label>Email</label> 
       <input type="email" name="email" class="form-control" required placeholder="Email"> 
      </div> 

      <div class="form-group"> 
      <label>Phone</label> 
      <input type="text" name="contact_no" class="form-control" required placeholder="Phone"> 
     </div> 

     <div class="form-group"> 
      <label>Date</label> 
      <input type="text" id="txtDate" name="date" class="form-control" required > 
     </div> 

     <div class="form-group"> 
      <label>Address</label>   
      <textarea class="form-control" name="address" required placeholder="Address" rows="3"></textarea> 
     </div> 

     <div class="form-group"> 
      <label for="">Department</label> 
      <select class="form-control input-sm" required name="department_id" > 
      @foreach($department as $row) 
      <option value="{{$row->id}}">{{$row->name}}</option> 
      @endforeach 
      </select> 
     </div> 

      <button type="submit" class="btn btn-default">Submit</button> 
     {!! Form::close() !!} 
     </div> 

    <script type="text/javascript"> 
    $(document).ready(function() { 
       $('#txtDate').datepicker(); 
       $('#txtDate').datepicker('setDate', 'today'); 
     }); 
    </script> 

@endsection 
+0

怎麼樣$ student-> registraion_number = $ student-> department_id + year + xxx; + =連接並使用當前年份的輔助函數或Carbon和您的xxx值。 –

回答

2

如果我理解正確的話,它應該是這樣的:

$currentId = Student::orderBy('id', 'desc')->first()->id + 1; 

$student->registraion_number = $student->department_id.'-'.date("Y").'-'.$currentId; 
+0

它應該是部門代碼'$ student-> department_code' 但是當用戶選擇一個部門時也會出現這種情況, 而且沒有學生表可以獲得'$ currentId'值,我想可能會有是我可以跟蹤那個'XXX'的櫃檯? – User57

+0

那麼,在這種情況下,你真的應該顯示你的完整代碼。另外,你告訴我沒有學生表,但是在你的代碼中你試圖在某處保存數據。而且你肯定會在某個地方保存註冊號,所以你可以使用該表的ID。 –

+0

Threre是$ currentId的問題,因爲我第二次存儲它顯示的一些數據如下Error, 'App \ Student類的對象無法轉換爲int' – User57