刀片与PHP混合不起作用

时间:2013-08-19 20:25:54

标签: laravel laravel-4 blade

这是我正在尝试做的事情(我的代码):

@extends('base')
@section('title', 'Quests')
@stop
@section('main')

<? $quests = array (  
    1 => array ( "name" => "Quest 1", "level" => 100, "description" => "Write your description here", "reward" => "Shield, Boots"), 
    2 => array ( "name" => "Quest 2", "level" => 100, "description" => "4 Peoples needed!", "reward" => "Sword, Stonecutter Axe, Armor, Present(choose 1)"), 
    3 => array ( "name" => "Inferno Quest", "level" => 100, "description" => "Very hard quest. You need a big team to do this quest, the quest is long too!", "reward" => "bla bla") 
); 

?>

<div id="spaceholder">&nbsp;</div>
<div class="container">
    <div class="doc-content-box">
        <legend>Quests</legend>
        <p>The quests listed below are not all the quests on the server, there are many many other quests, but these are the ones with experience bonus. The expeirence bonus rewarded from quests is multiplied with your current experience stage.</p>
        <table class="table table-striped">
            <thead>
                <tr>
                    <th>Quest</th>
                    <th style="width: 70%">Notes</th>
                </tr>
            </thead>
            <tbody>
                <? foreach($quests as $quest)
                echo '<tr>
                    <td>
                        <strong>' . $quest['name'] . '</strong><br>
                        <span class="label label-success">Experience bonus: 100 000</span><br>
                        <span class="label label-important">Level requirement: 35</span><br>
                    </td>
                    <td>This quest requires completing all missions.</td>
                </tr>';
                ?>
            </tbody>
        </table>
    </div>
@stop 

输出如下:

  1. 首先,任务的数组显示为纯文本(代码)
  2. 任务名称也显示为纯文本(代码)
  3. 如果无论如何都要与Laravel这样做,我想知道。

1 个答案:

答案 0 :(得分:5)

使用<??>,而不是使用<?php?>,这让我在CodeIgniter时代受到了影响。

我也更喜欢使用刀片方式使用foreach循环。

@extends('base')
@section('title', 'Quests')
@stop
@section('main')

<?php
$quests = array (  
    1 => array ( "name" => "Quest 1", "level" => 100, "description" => "Write your description here", "reward" => "Shield, Boots"), 
    2 => array ( "name" => "Quest 2", "level" => 100, "description" => "4 Peoples needed!", "reward" => "Sword, Stonecutter Axe, Armor, Present(choose 1)"), 
    3 => array ( "name" => "Inferno Quest", "level" => 100, "description" => "Very hard quest. You need a big team to do this quest, the quest is long too!", "reward" => "bla bla") 
); 

?>

<div id="spaceholder">&nbsp;</div>
<div class="container">
    <div class="doc-content-box">
        <legend>Quests</legend>
        <p>The quests listed below are not all the quests on the server, there are many many other quests, but these are the ones with experience bonus. The expeirence bonus rewarded from quests is multiplied with your current experience stage.</p>
        <table class="table table-striped">
            <thead>
                <tr>
                    <th>Quest</th>
                    <th style="width: 70%">Notes</th>
                </tr>
            </thead>
            <tbody>
                @foreach($quests as $quest)
                    <tr>
                        <td>
                            <strong>{{$quest['name']}}</strong><br>
                            <span class="label label-success">Experience bonus: 100 000</span><br>
                            <span class="label label-important">Level requirement: 35</span><br>
                        </td>
                        <td>This quest requires completing all missions.</td>
                    </tr>
                @endforeach
            </tbody>
        </table>
    </div>
@stop 

我在我的项目中使用了类似的方法,它很有效。