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

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

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

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

Q&A

解決済

1回答

4877閲覧

laravel5.5のページネーションでhttpとhttpsを変えることはできますか?

lkjgffh

総合スコア37

Laravel 5

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

0グッド

0クリップ

投稿2018/03/09 08:40

前提・実現したいこと

テスト環境で発生しているMixed Content: The page atエラーを解決したい

該当のソースコード

現在Laravelのデフォルト機能で生成しているページネーションのURLがテスト環境でもhttpから始まっており上記のエラーが発生しています

ローカル環境のhttpとテスト環境のhttpsでエラーが起きないようにしたいのですがどのようにしたらよいでしょうか?

@if(isset($Users)==true) @if(count($Users)>=5) {{ $Users->links() }} @endif @endif

試したこと

https://laracasts.com/discuss/channels/laravel/mixed-content-issue-content-must-be-served-as-https
のサイトを元に
Provider/AppServiceProvider.phpを下記のように変更しました

<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Routing\UrlGenerator; class AppServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot(UrlGenerator $url) { if(env('APP_ENV') !== 'local') { $url->forceSchema('https'); } } /** * Register any application services. * * @return void */ public function register() { // } }

変更した結果

ページネーションの表示されるページでこのようなエラーが起きてしまいました

/app/vendor/laravel/framework/src/Illuminate/Support/Traits/Macroable.php if (static::$macros[$method] instanceof Closure) { return call_user_func_array(Closure::bind(static::$macros[$method], null, static::class), $parameters); } return call_user_func_array(static::$macros[$method], $parameters); } /** * Dynamically handle calls to the class. * * @param string $method * @param array $parameters * @return mixed * * @throws \BadMethodCallException */ public function __call($method, $parameters) { if (! static::hasMacro($method)) { throw new BadMethodCallException("Method {$method} does not exist."); } $macro = static::$macros[$method]; if ($macro instanceof Closure) { return call_user_func_array($macro->bindTo($this, static::class), $parameters); } return call_user_func_array($macro, $parameters); } } Arguments "Method forceSchema does not exist."

Illuminate\Contracts\Routing\UrlGenerator そのものは下記のようになっていました
UrlGeneratorでforceSchema を定義する必要があるということなのでしょうか?

ページネーションを付けたことで出現したMixed Content: The page atをなくすにはどのようにするのが一番よいでしょうか?

<?php namespace Illuminate\Contracts\Routing; interface UrlGenerator { /** * Get the current URL for the request. * * @return string */ public function current(); /** * Generate an absolute URL to the given path. * * @param string $path * @param mixed $extra * @param bool $secure * @return string */ public function to($path, $extra = [], $secure = null); /** * Generate a secure, absolute URL to the given path. * * @param string $path * @param array $parameters * @return string */ public function secure($path, $parameters = []); /** * Generate the URL to an application asset. * * @param string $path * @param bool $secure * @return string */ public function asset($path, $secure = null); /** * Get the URL to a named route. * * @param string $name * @param mixed $parameters * @param bool $absolute * @return string * * @throws \InvalidArgumentException */ public function route($name, $parameters = [], $absolute = true); /** * Get the URL to a controller action. * * @param string $action * @param mixed $parameters * @param bool $absolute * @return string */ public function action($action, $parameters = [], $absolute = true); /** * Set the root controller namespace. * * @param string $rootNamespace * @return $this */ public function setRootControllerNamespace($rootNamespace); }

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

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

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

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

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

guest

回答1

0

ベストアンサー

Laravel5.4でforceSchemaからforceSchemeに変わってるからですね。
UrlGeneratorの部分は不要で1行でいいはず。

\URL::forceScheme('https');

そもそもこれが必要ということはロードバランサー下だったりするんだろうけど
Laravel5.5ならTrustProxiesの設定すればforceSchemeは不要なはず。
https://readouble.com/laravel/5.5/ja/requests.html#configuring-trusted-proxies
5.6ではTrustProxiesの書き方が変わってる。
バージョンごとに対応が違う。

投稿2018/03/09 09:57

kawax

総合スコア10377

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

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

lkjgffh

2018/03/09 10:15

ご助言くださりありがとうございます。 上記エラー解決することができました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問