Laravel可选的Ul Slug校正

时间:2018-07-19 03:41:14

标签: laravel

我想纠正帖子网址中可能存在的错误,就像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脚本就可以吗?

1 个答案:

答案 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');