【问题标题】:PHP Error -- Use of undefined constant x - assumed 'x'PHP 错误 - 使用未定义的常量 x - 假定为“x”
【发布时间】:2019-11-11 11:15:34
【问题描述】:

如何从表中获取数据并以 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');
});

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

【问题讨论】:

    标签: php json angularjs laravel


    【解决方案1】:

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

    要解决这个问题,您可以尝试从视图文件名中删除 blade 字样,这样每次您必须使用 JavaScript 框架打印某些内容时,它就会变为 form.php 或(替代方式而不是修改文件名)刀片,使用:@{{ 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,它被解释为一个常量。 如果您在 @ 符号前加上前缀,blade 会将其识别为不被解析的指令,但需要保持原样,它只会删除 @,从而为您的 JavaScript 循环留下正确的代码

    【讨论】:

      猜你喜欢
      • 2018-05-05
      • 1970-01-01
      • 1970-01-01
      • 2014-05-11
      • 2016-08-10
      • 1970-01-01
      • 2019-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多