簡體   English   中英

UrlGenerationException(缺少 [Route] 所需的參數)

[英]UrlGenerationException (Missing required parameters for [Route])

我不知道這個錯誤是從哪里來的。 嘗試更新記錄時出現此錯誤。 它可以正常工作並更新到我的數據庫中,但出現此錯誤。 它說那錯過了我的參數中的某些內容。 我認為我的錯誤是return redirect()->route('account.show'); 當我嘗試在更新后重定向到我的顯示視圖時。 但是當我重定向到其他工作正常時。 有什么意見嗎?

[Route: account.show] [URI: show/{id}] 缺少必需的參數。

我有 3 個刀片模板。 搜索編輯顯示

search.blade.php - 顯示所有記錄。

@foreach ($result as $row)
    <tr class = "success">
        <td>{{ $row->id }}</td>
        <td>{{ $row->first_name }}</td>
        <td>{{ $row->last_name }}</td>
        <td>{{ $row->middle_name }}</td>
        <td>{{ $row->email }}</td>
        <td>{{ $row->username }}</td>
        <td>
            <a href = "{{ route ('account.show', $row->id) }}"><button type = "submit" class = "btn btn-info">View</button></a>

            <a href = "{{ route ('account.edit', $row->id) }}"><button type = "submit" class = "btn btn-warning">Edit</button></a>

            <a href = "{{ route ('result.destroyEmployee', $row->id) }}"><button type = "submit" class = "btn btn-danger">Archive</button></a>
        </td>
    </tr>
@endforeach

edit.blade.php - 在這里點擊提交按鈕后出現錯誤,即保存

<div class = "col-md-6">
<form class = "form-vertical" role = "form" method = "post" action = "{{ route ('account.edit', $result->id) }}">

<h3>Edit Employee</h3>
<hr>

<div class = "form-group">

    <label for = "email" class = "control-label">Email Address</label>
    <input type = "text" name = "email" class = "form-control" value = "{{ $result->email }}">

</div>

<div class = "form-group">

    <label for = "username" class = "control-label">Username</label>
    <input type = "text" name = "username" class = "form-control" value = "{{ $result->username }}">

</div>

<div class = "form-group">

    <button type = "submit" class = "btn btn-success">Save</button>

</div>

<input type = "hidden" name = "_token" value = "{{ Session::token() }}">

</form>

show.blade.php - 文本字段只會放置記錄的值。

<div class = "col-md-6">
<form class = "form-vertical" role = "form" method = "post" action = "{{ route ('account.show', $result->id) }}">

<h3>View Employee</h3>
<hr>

<div class = "form-group">

    <label for = "email" class = "control-label">Email Address</label>
    <input type = "text" name = "email" class = "form-control" placeholder = "{{ $result->email }}" readonly>

</div>

<div class = "form-group">

    <label for = "username" class = "control-label">Username</label>
    <input type = "text" name = "username" class = "form-control" placeholder = "{{ $result->username }}" readonly>

</div>

<input type = "hidden" name = "_token" value = "{{ Session::token() }}">

</form>

路線:

//READ
Route::get('/search',
[
    'uses' => '\App\Http\Controllers\AccountController@getEmployee',
    'as' => 'account.search',
]);


//SHOW
Route::get('/show/{id}',
[
    'uses' => 'AccountController@showEmployee',
    'as' => 'account.show',
]);

//EDIT
Route::get('/edit/{id}',
[
    'uses' => '\App\Http\Controllers\AccountController@editEmployee',
    'as' => 'account.edit',
]);


//UPDATE
Route::post('/edit/{id}',
[
    'uses' => '\App\Http\Controllers\AccountController@updateEmployee',
    'as' => 'account.edit',
]);

嘗試改變這一點:

<form class = "form-vertical" role = "form" method = "post" action = "{{ route ('account.show', $result->id) }}">

至:

 <form class = "form-vertical" role = "form" action="{{ url('edit/'. $result->id) }}" method="POST">

然后你必須將路由參數作為第二個參數傳遞給路由。 像這樣: return redirect()->route('account.show', [$id])

*我建議您使用 laravel 集體形式: https ://laravelcollective.com/

使用 laravel 集體你可以做這樣的事情:

{!! Form::open(array('route' => array('account.show', $result->id))) !!}
return view('admin.edit',compact('post','id');

Illuminate\\Routing\\Exceptions\\UrlGenerationException [Route: blog.show] [URI: blog/{post}] [Missing parameter: post] 缺少必需參數。 (查看:C:\\Users\\Acer A311-33\\Desktop\\文件夾 uas\\myblog\\resources\\views\\blog.blade.php) http://127.0.0.1:8000/blog

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM