mar-gitacount
@mar-gitacount (mar mar)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

ララベルの@includeを使って外部ファイルを読み込む。(パス指定を動的にする)

Q&A

解決したいこと

ユーザーのパラメータによって@includeのパス指定を動的にしたい。

例)
現在ララベルで投稿webアプリを作っており、その投稿をユーザーidによって制御し、パス内に変数を入れ、表示するブレードファイルを変えたい。
変数を使わない書き方

<!-- 以下を変数に変えたい -->
@include('user_view.3.test')

上記をユーザーのidによってブレードファイルを書き換えたい。


<?php
//string型に変換する。
$user_id = (string) $articleUser -> id;
?>

雛形のビューファイルの中にincludeでユーザーの作成したブレードファイルを読み込む。

発生している問題・エラー

数字を固定するとファイルが正しく読み込まれるが、変数にすると読み込まれなくなる。

例)

読み込まれる
@include('user_view.3.test')
読み込まれない
@include('user_view.{{$user_id}}.test')

該当するソースコード


<!-- タイトル -->
@extends('layouts.base')
@section('title', 'コンタクト画面')
<!-- ヘッダー部分 -->
<header>
@include('layouts.app')
</header>
<body>
<section class="article">
<h1>{{ $article->article }}</h1>
<!-- 本文を読み込みする。 -->

<?php
//string型に変換する。
$user_id = (string) $articleUser -> id;
include "./user_view/3/usertest.php";
?>
<!-- 以下を変数に変えたい -->
@include('user_view.3.test')


</section>
<div class="user_status">
<code>
<div>このページ作成の作成者:{{$articleUser->name}}</div>
</code>
<div>{{$articleUser->id}}</div>
</div>

例)

自分で試したこと

ブレードファイルの構文ではダメならと、phpのincludeをそのまま書き、読み込みファイルをphpファイルに変更するも以下エラーが吐かれます。
何卒ご教授お願いいたします。

include(./user_view/3/usertest.php): failed to open stream: No such file or directory (View: /Applications/MAMP/htdocs/s_p/simple/resources/views/article_display.blade.php)

<?php
//string型に変換する。
$user_id = (string) $articleUser -> id;
include "./user_view/3/usertest.php";
?>
0

1Answer

Comments

  1. @mar-gitacount

    Questioner

    上記質問記事を参考にURLを参考にし、ユーザーのステータスごとにファイルを出し分け@includeしたらファイルを表示することができました。ありがとうございます!!

Your answer might help someone💌