在PHP Laravel字符串中使用@(at符号)

时间:2015-04-04 19:42:36

标签: php laravel laravel-4 laravel-routing error-suppression

我的应用中有以下代码。问题是@(在标志处)。当它在那里时,我得到语法高亮和错误,好像字符串没有结束。删除它时,页面工作正常(减去不存在的操作)。我试过逃避@并且没有工作。我也试过双引号,但这也不起作用。我怎么能逃脱@?

我可以使用路线功能并完全避免使用@但我觉得动作功能在它做什么方面要清楚得多,所以我宁愿不使用路线。

@extends('layouts.default') <?php
$url = URL::action('UsersController@index'); ?>

@section('header')
    @include('partials.components.searchHeader', array('title' => "Users", 'results' => $users->getTotal(), 'total' => $total, 'url' => URL::route( 'users.index' ), 'type' => 'user'))
@stop

<?php
if(Auth::user()->isAdmin()) $publishedFellows = Fellow::published()->get();
if(!Auth::user()->isFellow()) $publishedOpportunities = Opportunity::select('opportunities.*')->published()->sortedByCompany()->get(); ?>

@section('content')
    @if(Auth::user()->isAdmin())
        @include('partials.components.add-button', array('url' => '/users/create', 'name' => 'Add User'))
    @endif
    <?php $partialsList = [
        'listItems' => $users,
        'search' => $search,
        'url' => URL::route('users.index'),
        'pills' => $pills,
        'indexView' => 'users.single',
        'type' => 'user',
        'total' => $total,
    ]; ?>
    @include('partials.list')
@stop

1 个答案:

答案 0 :(得分:1)

要在刀片中转义@个符号,您只需使用双@@

所以这个:

@@example

将打印

@example

但是你的代码非常混乱,这可能会给你带来麻烦。最大的问题是您正在使用extend - 但是您将代码放在这些部分之间,而这些部分未正确调用。此外 - 您在保存变量的部分之间放置的代码甚至不会在任何地方调用!

你应该将你的观点重构为这样的东西来解决问题:

@extends('layouts.default')

@section('header')
    @include('partials.components.searchHeader', ['title' => "Users", 'results' => $users->getTotal(), 'total' => $total, 'url' => URL::route( 'users.index' ), 'type' => 'user'])
@stop


@section('content')
    @if(Auth::user()->isAdmin())
        @include('partials.components.add-button', ['url' => '/users/create', 'name' => 'Add User'])
    @endif
    @include('partials.list', ['listItems' => $users, 'search' => $search, 'url' => URL::route('users.index'), 'pills' => $pills, 'indexView' => 'users.single', 'type' => 'user', 'total' => $total])
@stop