为什么不能更改编辑功能的名称?

时间:2019-09-12 14:56:38

标签: php laravel

我的索引页面上有一些帖子,每个帖子上都有一个编辑按钮。 问题是,我希望URL是匈牙利语,但是每次我将函数的名称从edit更改为sth时。否则会给我404错误。

我用以下代码显示帖子:

@foreach($posts as $post)
     <div class="card p-3">
             <h3><a href="/elado/{{$post->id}}">{{$post->title}}</a></h3>
           <small>Feltöltve: {{$post->created_at}}</small>
         <h3><a href="/elado/{{$post->id}}/edit">Szerkesztés</a></h3> I TRY TO CHANGE /EDIT TO STH. ELSE HERE
     </div>
@endforeach

这是我的带有编辑功能的帖子控制器:

public function edit($id) { I change edit here as well
        $post = Post::find($id);
        return view('elado.szerkeszt')->with('post', $post);
    }

在web.php中,我已经

Route::resource('elado', 'PostsController');

2 个答案:

答案 0 :(得分:0)

因为您在路由声明中使用了resource()方法。默认情况下将使用其中的路由和控制方法

[
    'create',
    'store',
    'show',
    'edit',
    'update',
    'destroy',
]

如果要更改方法名称,请自行声明路由

Route::post('/change', 'PostsController@change');

答案 1 :(得分:0)

您可以使用诸如除外方法之类的方法从资源路由中排除编辑方法,然后使用自定义编辑方法定义新路由并放在资源路由之前:

Route::post('/elado/{id}', 'PostsController@sth');

Route::resource('elado', 'PostsController')->except([
        'edit'
    ]);