PHP 500(内部服务器错误) - 遇到非数字值?

joh*_*hnW 0 php ajax jquery laravel

我想使用 jQuery 和 Laravel 进行自动完成搜索输入。但是当用户在搜索输入中输入至少 2 个字母时,我收到一个错误:

GET http://proj.test/autocomplete-search?term=ca 500 (Internal Server Error)
Run Code Online (Sandbox Code Playgroud)

你知道问题出在哪里吗?我想根据用户在搜索表单中插入的字母显示会议。

搜索输入:

<div class="col col-md-6">
    <h4 class="text-white  text-center font-weight-bold">Search</h4>
    <form class="main-search">
        <input type="text" id="search" class="autocomplete dropdown-toggle" placeholder="Conference, Citiy, Category">
    </form>
</div>
Run Code Online (Sandbox Code Playgroud)

Laravel 路线:

Route::get('/autocomplete-search', 'AutocompleteController@search');
Run Code Online (Sandbox Code Playgroud)

Laravel 自动完成控制器:

class AutocompleteController extends Controller
{
    public function search(Request $request){
        $search = $request->term;
        $conferences = Conference::where('name', 'LIKE', '%'.$search.'%')->get();

        $data= [];
        foreach ($conferences as $key => $value){
            $data[] = ['id'=>$value->id, 'value' => $value->id + " " + $value->name];
        }

        //dd($data);
        return response($data);
    }
}
Run Code Online (Sandbox Code Playgroud)

查询:

$("#search").autocomplete({
   source: "{{ URL::to('autocomplete-search') }}",
   minLength: 2,
   select:function(key, value)
   {
       console.log(value);
   }
});
Run Code Online (Sandbox Code Playgroud)

编辑:在网络选项卡中,错误显示为:

{消息:“遇到非数字值”,异常:“ErrorException”,...}

并指向这一行:

{function: "search", class: "App\Http\Controllers\AutocompleteController", type: "->"}". 在 "$data[] = ['id'=>$value->id, 'value' => $value->id + " " + $value->name];

ADy*_*son 5

+当您需要使用字符串连接运算符 ( ) 时,您已经使用了加法运算符 ( .)。

所以

$data[] = ['id'=>$value->id, ' value' => $value->id + " " + $value->name]
Run Code Online (Sandbox Code Playgroud)

需要成为

$data[] = ['id'=> $value->id, 'value' => $value->id . " " . $value->name]
Run Code Online (Sandbox Code Playgroud)

否则 PHP 认为您正在尝试对这些字段进行添加,而实际上它们是您想要放入单个变量的文本。

请参阅http://php.net/manual/en/language.operators.php了解有关哪些运算符在 PHP 中执行的操作的信息。