2017-05-06 81 views
0

每當我更新數據而不是更新時,數據將被保存爲新條目。 添加任務頁面Laravel表單模型保存錯誤

@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() !!} 

路線:web.php

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

員工任務控制器文件名: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) 
    { 
     // 
    } 
} 

請檢查作爲每當我按下它保存將去employee.store路線而不是employee.update

+0

試試這個Route :: resource('employeeTask','employeeTaskController @ update'); – JYoThI

回答

0

如果您在documentationPOST檢查將被路由到store方法,PUT/PATCH將被路由到更新方法。

你可以做的就是調用updateOrCreate方法,所以你需要改變你的店的方法

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

只需添加這行:

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

此行之後

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

所以,laravel會知道你需要更新數據和使用方法update()而不是store()

+0

MethodNotAllowedHttpException RouteCollection.php第251行: – Sumeet

+0

**更改:** {!! Form :: model($ task,['url'=> ** To:** {!! Form :: model( $任務,[ '路線'=> – MohamedSabil83