20210731のlaravelに関する記事は2件です。

Laravel-dompdfパッケージで画像表示させる方法

はじめに Laravel-dompdfパッケージを用いてPDFダウンロードはできましたが、 そこになかなか画像を表示させることができなかったのでその方法です。 画像表示されない 通常画像を表示させるには以下にのようにimgダグを使用します。 <img src="(画像のURL)"> PDFダウンロードさせたいbladeファイルにこのように記述しても画像は表示されません。 これは最初にbladeファイルを読み込みそのあとに画像ファイルを読み込みにいく動作をするのですが、 このパッケージが画像ファイルを読み込めないようです(権限か何か問題だと思われる・・・) 対応方法 以上のような理由で表示されないので、ビューを渡すときに画像データも一緒に渡してあげるようにします。 方法はbase64_encode()でウェブページに直接埋め込むようにします。 具体的なコードは以下。 downloadController.php $image_path = storage_path('image/sample.png'); $image_data = base64_encode(file_get_contents($image_path)); $pdf = PDF::loadView('(Bladeファイル)', compact('image_data',....)) ->setPaper('a4', 'landscape'); $pdf->download('(ファイル名)'); pdf.blada.php <img src="data:image/png;base64,{{ $image_data }}"> コントローラーで画像データをエンコードします。 今回はstorage 配下にimageデェレクトリーを作り画像ファイルと置いている状況です。 storage_path()で画像データのパスを取得し、 file_get_contents()でファイルそのものを取得、 base64_encode()でファイルをエンコードし、Bladeファイルへ渡す。 Bladeファイル側で上記のような記述をすると画像ファイルが展開され表示されるようになります。 正常に表示されるようになり「ほ」っとしました。 ちなみにjpagファイルならpngと記載の箇所を書き換えたらできます!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[laravel 8.52]shiftとpopの関数が複数のアイテムを返せるように!

概念 今までlaravelのコレクションのpop()とshift()が一つのアイテムだけを削除し、返すことでしたが、Laravel8.52に含まれているこのPRでは、引数が受け取れるようになって、複数のアイテムを返すようになりました。 使い方 基本 返したいレコード数をpop()かshift()に引数として渡すと、そのレコード数がコレクションから削除され、新しいコレクションとして返されます。いずれの関数のデフォルト引数値が1ですので、引数を定義しない場合には、今までと同じように1アイテムがコレクションから削除され、返されます。 $collect = collect([ 'Craig', 'is', 'very', 'handsome!' ]); // 最後の二つのアイテムを削除し、新しいコレクションとして返す $collect->pop(2); // collect(['handsome!', 'very']); $collect->all(); // ['Craig', is]; // 最後のアイテムを削除し、返す $collect->pop(); // 'is' shift()の関数はpop()と違って「最後」のではなく、「最初」のアイテムを処理する動きで、実行の仕方も同じなので、ここで省略します。 注意 コレクションのアイテム数より大きいな引数を渡すと、返されるコレクションのサイズが必ず渡された値になるので、存在しないアイテムの分がNULLとして返されたコレクションに入れるので気を付ける必要があります。 // 4アイテムのコレクションを作る $collect = collect([ 'Craig', 'is', 'very', 'handsome!' ]); // 最初の6つのアイテムを削除し、返す $collect->shift(6); // 存在しないアイテムの分がNULLとして入ってしまします // collect(['Craig', 'is', 'very', 'handsome!', NULL, NULL]) 参照 https://github.com/laravel/framework/pull/38093 https://laravel.com/docs/8.x/collections#method-pop https://laravel.com/docs/8.x/collections#method-shift
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む