PHP错误-使用未定义的常数x-假定为'x'

时间:2019-06-30 12:22:09

标签: php json angularjs laravel

如何从表中获取数据并以json格式在控制器中传递数据,并使用angularjs在视图中获取这些数据

我想从控制器的json编码变量中获取数据,并使用angularjs将其显示以查看页面

使用angularjs查看页面

<div class="card"  ng-app = "myApp">
  <table class="table table-hover" ng-controller = "menuController">
     <thead>
        <tr>
           <th>Name</th>
           <th>Parent menu</th>
           <th>Order</th>
           <th>Status</th>
           <th class="text-center">Actions</th>
        </tr>
     </thead>
     <tbody>
        <tr ng-repeat = "x  in values">
           <td>{{x.name}}</td>
           <td>{{x.parent_name}}</td>
           <td>{{x.orders}}</td>
           <td>{{x.status}}</td>
           <td class="text-right">
              <button type="button" class="btn btn-icon-toggle"
                      data-toggle="tooltip" data-placement="top"
                      data-original-title="Edit row">
                <i class="fa fa-pencil"></i>
              </button>
              <button type="button" class="btn btn-icon-toggle"
                      data-toggle="tooltip" data-placement="top"
                      data-original-title="Copy row">
                 <i class="fa fa-copy"></i>
              </button>
              <button type="button" class="btn btn-icon-toggle"
                      data-toggle="tooltip" data-placement="top" 
                      data-original-title="Delete row">
                <i class="fa fa-trash-o"></i>
              </button>
           </td>
        </tr>
     </tbody>
  </table>
</div>
  var app = angular.module('myApp');
  app.controller('menuController',function ($scope,$http) {
     $scope.values = ["Milk", "Bread", "Cheese"];
  });

PHP控制器代码

public function getmenu(){

    $records=Menu::all();

    return json_encode($records);
    }

路线代码

Route::group(['prefix'=>'admin'],function(){
    Route::get('/form','HomeController@form');
});

  

ErrorException(E_ERROR)
  使用未定义的常量x-假定为“ x”(这将在以后的PHP版本中引发错误)(查看:form.blade.php)

1 个答案:

答案 0 :(得分:1)

我认为可能是因为您正在使用Laravel为包含角度代码的视图提供服务,并且在文件form.blade.php中使用了与刀片式刀片相同的角度语法。

要解决此问题,您可以尝试从视图文件名中删除blade字,因此每次您必须使用以下命令打印内容时,它就会变成form.php或(替代方法,而不是修改文件名) JavaScript框架而不是刀片,请使用:@{{ variableToPrint }}

例如,循环的一部分将变为:

<tr ng-repeat="x in values">
       <td>@{{x.name}}</td>
       <td>@{{x.parent_name}}</td>
       <td>@{x.orders}}</td>
       <td>@{{x.status}}</td>
       <!-- ... -->

由于刀片使用相同的语法来评估和打印值,因此会出现错误,因此如果您编写:{{ x.name }}刀片会找到字符串文字x,该字符串会被解释为常量。 如果您在@符号前加上前缀,刀片将识别为一条不被解析的指令,但是需要保留该原样,它将删除@,为您提供正确的代码为您的JavaScript循环