質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Laravel 4

Laravel 4 とはTaylor Otwellによって開発された、オープンソースなPHPwebアプリケーション開発フレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

2回答

1660閲覧

Laravel : URLの一部に8桁の乱数を含める方法

spellbound

総合スコア190

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Laravel 4

Laravel 4 とはTaylor Otwellによって開発された、オープンソースなPHPwebアプリケーション開発フレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2017/10/03 02:06

php

1# web.php 2Route::get('/', 'QuestionsController@index'); 3Route::resource('questions', 'QuestionsController', ['except' => ['show']]); 4Route::get('questions/{id}', 'QuestionsController@show');

現在、ルーティング記述が上記の通りになっています。

showアクションの {id} の部分を八桁の乱数にしたいです。
どのようにして実装するのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t_obara

2017/10/03 02:21

八桁の乱数を求めたいという質問になるのでしょうか?
spellbound

2017/10/03 02:36

`$string = str_random(40);` これを活用すればランダムな文字列を取得することができることは知りました。しかし、URLの{id}に8桁の乱数を設定する方法がわからないということです。
spellbound

2017/10/03 02:36

わかりやすい例を挙げると、teratailのようなURLにしたいということです。
t_obara

2017/10/03 02:37

上記$stringを用いて、URLを表現する文字列を生成したいという意図でしょうか?
guest

回答2

0

ベストアンサー

mtsさんも言っているとおり、teratailは連番です。
大抵こういうのは連番で付いています。一部のサービスなどではauto_incrementの値を10000などにセットしてから開始しています。

https://teratail.com/questions/1 は何らかで消えてますが
https://teratail.com/questions/2

が存在します。

投稿2017/10/03 10:29

fagai

総合スコア2158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fagai

2017/10/03 14:03 編集

twitterのつぶやきもそう見て良いでしょう。 実装が難しいというよりは、今挙げられた内容であれば隠蔽する必要がないと考えられるいうことです。 隠蔽をしようと考えているのであれば、 http://ysklog.net/php/2103.html 上記の記事にような感じで md5(uniqid(rand(), true)); などを用いてほぼ確実に一意なIDをつくると良いでしょう。 連番っぽく見せなくする方法もあります。 基数変換を利用して、10進数を64進数などに変換してURLに付与するパターンです。 https://sousaku-memo.net/php-system/71 ランダム値に設定するのは衝突が発生する可能性が高くなるので何らかの工夫をした上でデータを入れる必要があります。
spellbound

2017/10/03 16:16

ありがとうございます!! 参考記事を元に実装してみます!
guest

0

teratailは連番ですね。おそらく質問IDです。
ルーティングはあくまでプログラムが受け取る側の設定なので{id}は任意の値を受け取るためのものです。
送信側は普通にhtmlのリンクや、phpで書くならリダイレクトで対応すると良いでしょう。

投稿2017/10/03 02:50

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問