我想纠正帖子网址中可能存在的错误,就像Stack Overflow一样,如下所示:https://stackoverflow.com/questions/51413983/completely-incorrect-slug
让我们以以下网址为例:
www.example.com/posts/5/some-slug-here
我的路线如下,并且有效:
Route::get('/posts/{id}/{slug?}', [...]
但是以下网址也可以使用:
www.example.com/posts/5/some-wrong-slug-here
当我通过id提取帖子时点击了网址,就可以访问该子弹。
我想将网址更新为正确的网址。不使用Java脚本就可以吗?
答案 0 :(得分:0)
谢谢rkj。
通过将slug设置为可选参数,获取帖子,然后检查url slug是否与post slug相匹配,已经实现了我想要的。如果有,我返回一个视图。如果没有,我将重定向到相同的路由,并传递id和正确的Slug作为参数。
路线示例:
<ion-grid fixed *ngIf="showPhone">
<ion-row class="edit-field">
<ion-col col-auto class="field-icon">
<ion-icon name="md-remove-circle"></ion-icon>
</ion-col>
<ion-col col-auto class="field-type">
<select name="phoneType" [(ngModel)]="phoneData.phone_type">
<option value="select"> -- Select -- </option>
<option value="home">home</option>
<option value="mobile">mobile</option>
<option value="business">business</option>
<option value="home fax">home fax</option>
<option value="work fax">work fax</option>
<option value="fax">fax</option>
</select>
</ion-col>
<ion-col class="field-input">
<input type="text"
[(ngModel)]="phoneData.phone_number"
(blur)="addPhone(phoneData)"
placeholder="Phone">
</ion-col>
</ion-row>
</ion-grid>
控制器示例:
Route::get('/posts/{id}/{slug?}', 'FrontEndController@single_post')->name('single_post');