ララベルの@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