Laravel,Show(),Edit(),更新功能不起作用

时间:2018-09-12 17:25:10

标签: laravel

在下面显示方法的代码中,编辑更新不起作用。

<?php

namespace App\Http\Controllers\admins;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\contact;
use Image;
use Auth;
use Storage;
use File;

class ContactController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $contact = Contact::orderby('created_at', 'desc')->paginate(5);

        //$agent=Agent::orderby('id','desc')->paginate(5);
        return view('admin.messages.index', ['contacts' => $contact]);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return back()->with('success', 'Message can only be created by Users end.');
    }

    /** * Display the specified resource.
     *
     * @param \App\contact $contact
     * @return \Illuminate\Http\Response
     */
    public function show(contact $contact)
    {
        dd(['contact' => $contact]);
        //return back()->with('success','Message Contents Are Already Shown');
    }

    /** 
     * Show the form for editing the specified resource. 
     * 
     * @param \App\contact $contact 
     * @return \Illuminate\Http\Response 
     */
    public function edit(contact $contact)
    {
        return view('admin.messages.edit', compact('contact'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request $request
     * @param  \App\contact $contact
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, contact $contact)
    {
        dd($request);
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\contact $contact
     * @return \Illuminate\Http\Response
     */
    public function destroy(contact $contact)
    {
        return back()->with('success', 'Message history can not be Deleted. ');
    }
}

1 个答案:

答案 0 :(得分:0)

假设您在contacts/{ slug }之类的路由中使用了子弹

public function show(contact $contact)
{
    dd(['contact' => $contact]);
    //return back()->with('success','Message Contents Are Already Shown');
}

接收一个id而不是一个联系人...您正在函数参数中初始化/声明为contact,这就是为什么它以某种方式被强制转换为联系人...但是它是一个id,您应该执行以下操作:

public function show($id)
{
    $contact = Contact::findOrFail($id);
    dd(['contact' => $contact]);
    //return back()->with('success','Message Contents Are Already Shown');
}