猿问

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

我的索引页面上有一些帖子,每个帖子上都有一个编辑按钮。问题是,我希望 URL 是匈牙利语,但每次我将函数的名称从编辑更改为某事。否则它会给我 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');


繁星淼淼
浏览 162回答 2
2回答

森林海

因为您resource()在路由声明中使用了方法。默认情况下将使用路由和控制方法[&nbsp; &nbsp; 'create',&nbsp; &nbsp; 'store',&nbsp; &nbsp; 'show',&nbsp; &nbsp; 'edit',&nbsp; &nbsp; 'update',&nbsp; &nbsp; 'destroy',]如果要更改方法名称,请自行声明路由Route::post('/change', 'PostsController@change');

浮云间

您可以使用 except 方法从资源路由中排除编辑方法,然后使用自定义编辑方法定义新路由并放在资源路由之前:Route::post('/elado/{id}', 'PostsController@sth');Route::resource('elado', 'PostsController')->except([&nbsp; &nbsp; &nbsp; &nbsp; 'edit'&nbsp; &nbsp; ]);
随时随地看视频慕课网APP
我要回答