在我的数据库中,我有两个表Pages
和Articles
。
在我的Pages
表中,我有以下内容:
+----+------------------+--------------+
| id | content | slug |
+----+------------------+--------------+
| 1 | {{$articleBody}} | /news/{slug} |
+----+------------------+--------------+
在我的Articles
表中,我有以下内容:
+----+----------------+--------------+
| id | content | slug |
+----+----------------+--------------+
| 1 | Blah blah balh | /news/1 |
+----+----------------+--------------+
我还有一个名为wrapper.blade.php
的标准刀片文件:
<body>{{$pageContent}}</body>
在我的web.php
文件中,我执行以下操作以返回Page (ID:1)
和Article
:
return view("wrapper", ["Article"=> Article::find(1), "pageContent" => Page::find(1)->content]);
我的想法是我可以通过CMS方式更改Page
周围的Article
内容。
我尝试过:
return view("wrapper", ["articleBody"=> Article::find(1)->content, "pageContent" => Blade::compileString(Page::find(1)->content)]);
但是我运气不好。
答案 0 :(得分:0)
使用blade时,首先要做的是将文件编译为PHP可以理解的东西。例如{{ => <?php
或@if(...) @endif => <?php if(...){} ?>
。
当您在字符串中使用{{first_name}}
时,刀片在缓存视图时,file.blade.php中没有{{
和}}
。
刀片文件的缓存完成后,服务器运行php文件,{{first_name}}
将被放置在文件中并视为字符串。
您正在寻找的东西是str_replace()
。
让我们说您的字符串为$String = "Hello something_unique, how are you?"
然后在刀片文件中使用{{ str_replace("something_unique", $first_name, $String ); }}
。我认为这就是您想要的。
答案 1 :(得分:-1)
您应该使用
$string = "Hello".$first_name.", how are you ? "