2017-05-06 3 views
0

Immer wenn ich die Daten aktualisieren, anstatt aktualisiert zu werden, werden die Daten als neuer Eintrag gespeichert. Aufgabe hinzufügen SeiteLaravel Form Modell speichern Fehler

@extends('master.masterPage') 
@section('content') 

{!!Form::model($task,['url'=>['employeeTask.update',$task->id], 'class' => 'well form-horizontal']) !!} 

    <!-- Text input--> 
    <div class="form-group"> 
    {!! Form::Text('userAssigned', null,array('class' => 'form-control','placeholder'=>'Employee Name')) !!} 


    <!-- Text input--> 
    <div class="form-group"> 
    {!! Form::Text('title',null,array('class' => 'form-control','placeholder'=>'Title')) !!} 


    <!-- Text input--> 
    <div class="form-group"> 
    {!!Form::Textarea('description',null,array('class' => 'form-control','placeholder'=>'Description')) !!} 

    <!-- Text input--> 
    {!! Form::Text('client',null,array('class' => 'form-control','placeholder'=>'Client Name')) !!} 

    <div class="form-group"> 
    {!!Form::Text('completionDate',null,array('class' =>'formcontrol','placeholder'=>'Date')) !!} 

    <!-- Button --> 
    <div class="form-group"> 
    {{Form::Submit('Save',['class'=>'glyphicon glyphicon-send'])}} 

{!! Form::close() !!} 

Route: web.php

Route::resource('employeeTask','employeeTaskController'); 

Employee Task-Controller Dateiname: employeeTaskController

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use Webpatser\Uuid\Uuid; 
use App\Model\task; 

class employeeTaskController extends Controller 
{ 
    /** 
    * Display a listing of the resource. 
    * 
    * @return \Illuminate\Http\Response 
    */ 
    public function index() 
    { 
     $data= task::all(); 
     return view('userPage.employeeTaskManagement')->with('data',$data); 
    } 

    /** 
    * Show the form for creating a new resource. 
    * 
    * @return \Illuminate\Http\Response 
    */ 
    public function create() 
    { 
     // 
     return view('userPage.addTaskPage'); 
    } 

    /** 
    * Store a newly created resource in storage. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @return \Illuminate\Http\Response 
    */ 
    public function store(Request $request) 
    { 
     // 
     $task = new task([ 
      'id' => Uuid::generate()->string, 
      'userAssigned' => $request->employeeName_txt, 
      'title' => $request->title_txt, 
      'description' => $request->description_txt, 
      'client' => $request->clientName_txt, 
      'completionDate' =>date('Y-m-d',strtotime($request->completionDate_txt)), 
      'status' => $request->status_dd, 
     ]); 
     $task->save(); 
     return redirect('employeeTask')->with('message','task has been saved Successfully'); 
    } 


    /** 
    * Display the specified resource. 
    * 
    * @param int $id 
    * @return \Illuminate\Http\Response 
    */ 
    public function show($id) 
    { 
     // 
    } 

    /** 
    * Show the form for editing the specified resource. 
    * 
    * @param int $id 
    * @return \Illuminate\Http\Response 
    */ 
    public function edit($id) 
    { 
     $task= task::find($id); 
     return view('userPage.editTaskPage')->with('task',$task); 
    } 

    /** 
    * Update the specified resource in storage. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param int $id 
    * @return \Illuminate\Http\Response 
    */ 
    public function update(Request $request, $id) 
    { 
     // 
     $task = task::find($id); 
     $task->userAssigned = $request->employeeName_txt; 
     $task->title = $request->title_txt; 
     $task->description = $request->description_txt; 
     $task->client = $request->clientName_txt; 
     $task->completionDate = date('Y-m-d',strtotime($request->completionDate_txt)); 
     $task->status = $request->status_dd; 
     $task->save(); 
     return redirect('employeeTask')->with('message','task has been Updated Successfully');   
    } 

    /** 
    * Remove the specified resource from storage. 
    * 
    * @param int $id 
    * @return \Illuminate\Http\Response 
    */ 
    public function destroy($id) 
    { 
     // 
    } 
} 

Bitte überprüfen Sie, wie immer, wenn ich speichern es bin drücken geht zu employee.store Route statt employee.update

+0

versuchen Sie diese Route :: resource ('employeeTask', 'employeeTaskController @ update'); – JYoThI

Antwort

0

Wenn Sie in der Check documentationPOST zum store Verfahren geleitet werden würde, würde PUT/PATCH zum Update-Verfahren geführt werden.

Was könnten Sie tun, ist rufen die updateOrCreate Methode, so dass Sie Ihre Methode speichern als

public function store(Request $request) 
{ 
    $task = task::updateOrCreate(
     [ 
      'id' => Uuid::generate()->string // Pass in the ID to cross check 
     ], 
     [ 
      'id' => Uuid::generate()->string, 
      'userAssigned' => $request->employeeName_txt, 
      'title' => $request->title_txt, 
      'description' => $request->description_txt, 
      'client' => $request->clientName_txt, 
      'completionDate' =>date('Y-m-d',strtotime($request->completionDate_txt)), 
      'status' => $request->status_dd, 
     ] 
    ); 

    return redirect('employeeTask')->with('message','task has been saved Successfully'); 
} 
0

Nur müssten diese Zeile hinzufügen, ändern:

{!! method_field('put') !!} 

Nach dieser Zeile:

{!!Form::model($task,['url'=>['employeeTask.update',$task->id], 'class' => 'well form-horizontal']) !!} 

Also, Laravel wird wissen, dass Sie die Daten aktualisieren müssen und verwenden Sie die Methode update() statt store()

+0

MethodNotAllowedHttpException in RouteCollection.php Zeile 251: – Sumeet

+0

** Änderung: ** {!! Formular :: model ($ task, ['url' => ** To: ** {!! Formular :: modell ($ Aufgabe, ['route' => – MohamedSabil83