Зашифровать site_id в URL показать детали - PullRequest
2 голосов
/ 17 февраля 2020

У меня есть база данных

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

SiteController

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 Ответ

0 голосов
/ 17 февраля 2020

Привет, вы можете использовать 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...