【问题标题】:htmlentities() expects parameter 1 to be string, object given [closed]htmlentities() 期望参数 1 是字符串,给定对象 [关闭]
【发布时间】:2017-03-30 14:34:21
【问题描述】:

我在处理此代码时遇到了问题。我正在 textarea 部分编写 SQL 查询,通过按钮提交,然后根据用户的输入查询显示结果集。我只是 Laravel 的新手。有人可以帮我吗?以下是我的代码。

这是我的控制器

    public function create(Request $request)
    {
                    $query = $request->input("sql_query");
                    $submit = $request->input("execute_sql");

                    $fieldname= "";
                    $sqls = "";
                    $outputs = "";

                    if (isset($submit)) {

                        if ($query != "") {
                            $fieldname = str_replace("@name", "Tarpaulin", $query);


                            $outputs = "SELECT * FROM report_content WHERE field_name = 'Title'";

                            $sqls = DB::select(DB::raw($outputs));  

                        }

                    }

                    //die(); 

            return view('reports.create', compact('fieldtypes', 'json', 'query', 'submit'))
                            ->with('fieldname', $fieldname)
                            ->with('sqls', $sqls)
                            ->with('outputs', $outputs);
        }

create.blade.php

       <form id="sqlForm" action="{{ url('/reports/create') }}" method="GET">

                    <div class="col-md-12">
                        <div class="form-group @if($errors->has('query')) has-error @endif">
                              <div class="col-md-5">
                                <textarea rows="7" cols="7" id="sql_query" name="sql_query" class="form-control" required></textarea>
                                <br>
                                <button type="submit" class="btn btn-primary" id="execute_sql" name="execute_sql"><i class="fa fa-filter" aria-hidden="true"></i> Filter</button>

                              </div>

                              <div class="col-md-5">      
                                  <table>
                                    @foreach($sqls as $sql)
                                    <tr id="field-default">
                                        <td>
                                        {{ $sql }}
                                        </td>  
                                    </tr>
                                    @endforeach
                                </table>  
                              </div>  
                            <div class="col-xs-5">

                            </div>
                            <div class="col-xs-5">

                            </div>
                       </div>  
                      </div>

Here's the result set

【问题讨论】:

  • 我在你的代码中看不到对htmlentities()的任何调用!
  • Accountantم 你是什么意思你看不到任何对 htmlentities() 的调用?
  • @Jr.PHP 您给htmlentities() 打的电话在哪里?您的问题存在于您发布的代码中不存在的调用中
  • @AlexeyMezenin 人成功了!!非常感谢。从昨天开始,我已经调试了将近 3 个小时。它真的帮了我很多。谢谢大佬!!

标签: php laravel


【解决方案1】:

htmlentities 在这里:

<td> {{ $sql }} </td>

$sql 可能为 null、未定义或数组。在通过查看之前尝试调试它,或者将行更改为&lt;?php dd($sql) ?&gt; 以调试var。 htmlentities 只能转换字符串,这就是 {{}} 所做的。

【讨论】:

    【解决方案2】:

    您将“sqls”而不是“sql”从控制器传递到视图。所以你应该有这个:

    <td>
    {{ $sqls }}
    </td>
    

    【讨论】:

      猜你喜欢
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      • 2017-01-11
      • 2017-05-17
      • 2017-09-23
      • 1970-01-01
      相关资源
      最近更新 更多