提问者:小点点

加密URL中的站点id显示详细信息


我有数据库

site_id | site_name | site_status
1       | site A    | 1
2       | site B    | 1
3       | site C    | 1

站点控制器

public function show(site $site,$id)
{
    $site = site::where('site_id',$id)->first();
    // return $id;
    return view('master.site.show',compact('site'));
}

使用者php(模型)

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Site extends Model
{
    protected $table = "site";
    protected $primaryKey = 'site_id';

    protected $fillable = ['site_name','site_status','created_by','created_date'];
}

路线。

Route::get('/site_show/{id}', 'SiteController@show')->name('site_show');

看法

<a class="btn btn-info" href="{{ route('site_show',['id'=>$site->site_id]) }}"><i class="fas fa-eye"></i> Show</a>

请帮助我一步一步,当我点击显示按钮在show.blade, url将显示http://localhost/myproject/public/site_show/asndlah9q8yasa不http://localhost/myproject/public/site_show/2


共1个答案

匿名用户

您好,您可以使用encrypt()decrypt()Laravel助手函数。

你的控制器

public function show(site $site,$id)
{
    $site = site::where('site_id',decrypt($id))->first();
    // return $id;
    return view('master.site.show',compact('site'));
}

你的观点

<a class="btn btn-info" href="{{ route('site_show',['id'=>encrypt($site->site_id)]) }}"><i class="fas fa-eye"></i> Show</a>