尝试在Laravel中提交表单时出现404错误

时间:2018-11-13 16:06:32

标签: php laravel

我试图使用laravel雄辩地提交一个表单来调用我的数据库,但是每次尝试,它总是会引发404错误。

这是我的web.php

Route::get('/calls/newCall', 'CallsController@newCall');
Route::get('/calls/addNewCall', 'CallsController@create');
Route::resource('new_calls', 'CallsController');

这是我的CallsController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\new_calls;

class CallsController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function viewCall($id){ // the id in the url

        $new_calls = new_calls::find($id);

        return view('calls.viewCall')->with('new_calls', $new_calls);
    }

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

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        // validate data
        $this->validate($request, array(
           'terminal_id'=> 'required',
           'terminal_name'=> 'required',
        ));

        // store in the database
        $call = new new_calls;
        $call->terminal_id = $request->terminal_id;
        $call->terminal_name = $request->terminal_name;

        $call->save();

        //redirect
        return redirect()->route('new_calls.show', $call->id);
    }

    /**
     * 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)
    {
        //
    }

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

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

这是我的表格

<form action="CallController@new_calls.store" method="post">
    @csrf
    <div class="col-md-6">
        <div class="input-group" style="width: 100%;">
            <label for="terminal_id">{{ __('Terminal ID') }}</label><br>
            <input type="text" name="terminal_id" id="terminal_id" class="form-control" placeholder="Enter the Terminal ID" style="padding: 20px;" required>
        </div>
    </div>
    <div class="col-md-6">
        <div class="input-group col-md-12" style="width: 100%;">
            <label for="terminal_name">{{ __('Terminal name') }}</label><br>
            <input type="text" name="terminal_name" id="terminal_name" class="form-control" placeholder="Enter Terminal Name" style="padding: 20px;" required>
        </div>
    </div>

    <button type="submit" class="btn-primary" style="padding: 10px; font-size: 16px; border: 0;">{{ __('Submit') }}</button>
</form>

2 个答案:

答案 0 :(得分:1)

这是一个HTML上下文,其中表单操作实际上是您要向其提交表单的URL。您没有在表单动作分配中使用刀片模板语法或调用任何Laravel函数。您也没有正确定义路由操作。

您可以使用路由名称:

route('new_calls.store');

或者您可以使用以下操作:

action('CallsController@store');

您正在同时使用两者。

正确替换表单操作:

<form action="{{ route('new_calls.store') }}" method="post">

答案 1 :(得分:1)

尝试一下:

UPDATE wp_posts SET post_content = REPLACE (
post_content,
'<p><span id="more-35075"></span></p>',
'');

来源:URLs For Controller Actions

相关问题