2017-05-20 2 views
0

Ich mache ein Darlehen System für Bücher und ich habe eine Profilseite, die die Kredite, die Sie herausgenommen haben, zeigt, unter jeder ist eine Schaltfläche, die Sie zu einem Formular, wo Sie ausfüllen Die Bedingung des Buches, unter dem ein anderer Knopf ist, der die Daten zu einer Rückkehrtabelle in meiner Datenbank sendet, möchte ich den Kredit in der Kredittabelle löschen, weil, wenn nicht dann der Kredit in der Profilseite anzeigt und der Benutzer kann das gleiche Buch beliebig oft zurückgeben. jede Hilfe würde sehr geschätzt werden. danke.löschen Kredit Zeile in der Datenbank nach der Rückgabe Buch

profile.blade.php

<?php 
use App\Requests; 
use App\Loan; 
$request = Requests::where('userid', auth()->user()->userid)->get(); 
?> 

@extends('layouts.app') 

@section('content') 
<div class="container"> 

     <div class="panel panel-default"> 
      <div class="panel-heading"><h1>Profile: {{ Auth::user()->f_name }}</h1></div> 

      <div class="panel-body"> 

      <div class="container"> 

      <h3>Requests</h3> 

       @foreach ($request as $request) 
       <ul> 

        <h4>Title: {{$request->r_title}}</h4> 
        <h4>Author: {{$request->r_author}}</h4> 
        <h4>Year: {{$request->r_year}}</h4> 
        <h4>Condition: {{$request->r_condition}}</h4> 
        <br/> 
       </ul> 

       @endforeach 
       </div> 
       <div class="container"> 

       <h3>Loans</h3> 

       @foreach ($loan as $loan) 
       <ul> 

        <h4>Title: {{$loan->title}}</h4> 
        <h4>Start Date: {{$loan->startdate}}</h4> 
        <h4>Due Date: {{$loan->duedate}}</h4> 
        <br/> 

        <form action="{{url('returnform/'.$loan->loanid)}}" method="GET"> 
         <input type="submit" name="returnbtn" value="returnform"> 
        </form> 

       </ul> 
       @endforeach 

       </div> 
      </div> 
     </div> 

</div> 
@endsection 

returnform.blade.php

@extends('layouts.app') 

@section('content') 
<div class="container"> 

     <div class="panel panel-default"> 
      <div class="panel-heading"><h1>Return Book</h1></div> 

      <div class="panel-body"> 

         <form action="{{url('returns')}}" method="POST"> 
         {{ csrf_field() }}  
         <div> 
         <input type="hidden" name="lid" value="{{$loan->loanid}}" id="lid"> 
          <input type="hidden" name="re_bookid" value="{{$loan->bookid}}" id="re_bookid"> 
          <input type="hidden" name="re_title" value="{{$loan->title}}" id="re_title"> 
          <input type="hidden" name="re_ddate" value="{{$loan->duedate}}" id="re_ddate">    
         </div> 
         <div> 
           <label for="title"><h4>Enter the books condition: </h4></label> 
           <select name ="re_condition" value="{{old('condition')}}"> 
            <option value="mint">Mint</option> 
            <option value="good">Good</option> 
            <option value="fair">Fair</option> 
            <option value="poor">Poor</option> 
           </select> 
         </div>      
          <input type="submit" name="btn" value="returns"> 
         </form> 
      </div> 
     </div> 
</div> 
@endsection 

BookController.php

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Book; 
use App\Returns; 
use App\Requests; 
use App\Loan; 
use Carbon\Carbon; 


class BookController extends Controller 
{ 

    ...... 

    function returnform($loanid) 
{ 

    $loan = Loan::find($loanid); 
    return view('book/returnform',['loan' => $loan]); 

} 


function returns(Request $request, $loanid) 
{ 

    $return = new Returns(); 
    $return->userid = auth()->user()->userid; 
    $return->f_name = auth()->user()->f_name; 
    $return->l_name = auth()->user()->l_name; 
    $return->bookid = $request->re_bookid; 
    $return->title=$request->re_title; 
    $return->condition=$request->re_condition; 
    $return->returndate= Carbon::now(); 
    $return->duedate=$request->re_ddate; 
    $return->save(); 
    return redirect('profile'); 
} 

Routen

.... 

Route::get('returnform/{loanid}', '[email protected]'); 

Route::post('returns', '[email protected]'); 
+0

Ich würde es nicht löschen, ich würde einen "returned_on" Timestamp und Filter basierend darauf festlegen. – ceejayoz

Antwort

0

Um eine Zeile in einer Tabelle verwenden, um den folgenden Code

function deletereturns(Request $request, $loanid) { 
    $return = Return::find($loanid); 
    $return->delete(); 
    // return to some place 
} 

hinzufügen eine Route und seine done zu löschen.

Aber ich empfehle Ihnen, eine neue Spalte in der Tabelle mit Boolean zu erstellen und Standard-false festlegen.
Jedes Mal, wenn ein Benutzer versucht, ein Darlehen zu löschen, ändern Sie einfach false in true.
Wenn Sie den Kredit auflisten verwenden Sie einen, wo Bedingungen alle gelöschten auszuschließen.

Dies hilft Ihnen, zu wissen, wer alle Darlehen gelöscht, die in Ihrer Methode wird nicht funktionieren

0

Der $loanid Parameter in irgendeiner Weise helfen können, da Sie keinen Wert es passieren kann. Sie legen die Darlehens-ID jedoch in einem ausgeblendeten Formularfeld fest. Tun Sie dies, um das Darlehen mit der Darlehens-ID zu löschen.

Loan::destroy($request->lid); 

Sie sollten auch eine Überprüfung hinzufügen, wenn ein Benutzer das Buch zurückgibt Überprüfen Sie, ob das Darlehen mit der Darlehens-ID vorhanden ist, und führen Sie eine Prüfung durch, um festzustellen, ob der angemeldete Benutzer und der ausgeliehene Benutzer übereinstimmen. Denn mit Ihrem Code kann jeder Benutzer ein von einem anderen Benutzer ausgeliehenes Buch zurückgeben.

Verwandte Themen