私はlaravel 5.0を持っています。セッションドライバをデータベースに設定します。セッションテーブルに新しい行を挿入する必要のないリンクがいくつかあります。 www.site.com/download
の場合のみ、新しい行の挿入を無効にする方法。laravelのセッションテーブルに新しい行を追加できません
0
A
答えて
0
この解決策はlaravel 5.0に適しています最初に2つのミドルウェアをapp/http/kernel.php
に定義する必要があります。最初のミドルウェアは少なくなります。
<?php
Route::group(['middleware' => ['lesssession']], function()
{
Route::get('download', function(){
// do some stuff for download file
});
});
Route::group(['middleware' => ['hassession']], function()
{
// all other route that need session
});
?>
:編集
app/http/route.php
ことにより、2つのグループの プットルート:
<?php namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel {
/**
* The application's global HTTP middleware stack.
*
* @var array
*/
/**
* The application's route middleware.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => 'App\Http\Middleware\Authenticate',
'hassession' => [
'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode',
'Illuminate\Cookie\Middleware\EncryptCookies',
'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
'Illuminate\Session\Middleware\StartSession',
'Illuminate\View\Middleware\ShareErrorsFromSession',
'App\Http\Middleware\VerifyCsrfToken',
],
'lesssession' => [] ,
'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
'guest' => 'App\Http\Middleware\RedirectIfAuthenticated',
];
}
ステップ2:lesssessionがあるセッション.AND秒を必要としないルートであるhasssessionミドルウェア.hassessionは、セッション必要なルートのために良いです
1
セッションレスアクセス用の新しいルート/ミドルウェアタイプを作成します。これを行うには、StartSession
ミドルウェアが含まれていないHttp/Kernelに新しいミドルウェアグループを追加し、新しいルートファイルを追加してすべてのダウンロードリンクを保持し、新しいルートファイルをRouteServiceProvider
に登録します。
app/Http/Kernel.php
で$middlewareGroups
配列は、以下のように見えるように編集:
Route::group([
'middleware' => 'sessionless',
'namespace' => $this->namespace,
'prefix' => 'download',
], function ($router) {
require base_path('routes/downloads.php');
});
今すぐあなたの/routes
にファイルを追加します。
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
'throttle:60,1',
'bindings',
],
'sessionless' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
は、その後新たに作成したルートファイルをマップするために、あなたのapp/Providers/RouteServiceProvider
を編集しますディレクトリdownloads.php
をダウンロードし、そこにダウンロード可能なルートを追加します。あなたは彼らが探しているものをファイル解析するために、ワイルドカードを使用する場合は、次のことができ、または明示的ルートがダウンロードをトリガする一覧表示することができます:
Route::get('test', function(){
$file = '/path/to/test/file';
return response()->download($file);
});
Route::get('{fileName}', function($fileName){
$file = '/path/to/' . $fileName;
return response()->download($file);
});
これはヘッドレス認証を使用して対処していない、これを使用sessionless
ルートのすべてに不正にアクセスすることを望まない場合は必要です。
関連する問題
- 1. データテーブルに新しい行を追加できません[C#]
- 2. テーブルに新しい行を追加できませんangularjs
- 3. Laravel "外部キー制約を追加できません" - 移行
- 4. EGitのリポジトリに新しいファイルを追加できません
- 5. TFS2015のコレクションに新しいプロジェクトを追加できません
- 6. モデルSim - プロジェクトに新しいファイルを追加できません
- 7. 新しいフォルダに画像を追加できません
- 8. sidekiqに新しいキューを追加できません
- 9. サブテーマに新しい地域を追加できません
- 10. スピネーカーに新しいセキュリティグループルールを追加できません
- 11. iOS - HockeyAppに新しいデバイスを追加できません
- 12. juliaに新しいパッケージを追加できません
- 13. EditorGridPanelに新しいレコードを追加できません
- 14. レイアウト引き出しは新しい行を新しい行に追加しません
- 15. FileWriterは新しい行を追加しません
- 16. MS Bot:新しいカスタムQ&Aを追加できません。
- 17. 新しいSOラインアイテムを追加できません
- 18. Androidのテキスト文書に新しい行を書き込んでも新しい行を追加できない
- 19. Laravel 5.3:ユーザー登録の追加ユーザー情報を追加できません
- 20. 新しいLiは追加できません
- 21. Laravel 5.2移行:charデータ型の外部キーを追加できません
- 22. Android:My ListViewデータに新しい行を追加した後、タッチモードで行を選択できません
- 23. 行の新しいインスタンスを追加して、セルの生の値を更新できません
- 24. 新しく追加された行はextjsのグリッドパネルでドラッグドロップできません
- 25. Laravel - 1215外部キー制約を追加できません
- 26. Laravel 5.2、外部キー制約を追加できません
- 27. Laravel DB :: statement CREATE DATABASEはパラメータを追加できません(プリペインドステートメント?)
- 28. 外部キー制約を追加できません - Laravel Entrust
- 29. SQLSTATE [23000]:整合性制約違反:1452子行を追加または更新できません:[LARAVEL]
- 30. Laravelで移行を更新できません
あなたの答えはより柔軟で正確です。セッションレスの複数のルートが可能です。ありがとうございます。 – Froxz
これはlaravel 5.0またはlaravel 5.3用ですか? – adib16
構造はどちらの場合でも動作しますが、 'routes /'の代わりに 'app/Http/routes'にダウンロードルートファイルを置いておきたいと思っています。 –