我确定在这里做错了什么,只是不知道在哪里或哪里。
我有一个处理ajax post请求的Laravel控制器,并将curl请求的结果返回给ajax调用:
public function store()
{
/** Receive long and lat through ajax **/
$long = Input::get('longitude');
$lat = Input::get('latitude');
$location = $lat . "," . $long;
$url = blablable;
$curl = curl_init();
curl_setopt_array($curl,
array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $url
));
$result = curl_exec($curl);
return $result;
curl_close($curl);
}
这样做:curl返回一个JSON数组,该数组将被传递回ajax调用。
但现在我想将传入的数据保存到数据库中:
$location = new Location();
$location->latitude = Input::get('latitude');
$location->longitude = Input::get('longitude');
$location->save();
我在函数顶部添加了这4行,数据被保存到数据库但JSON数组被抢占,不知何故<!-- app/models/Location.php -->
被添加到返回的顶部,使得JSON数组无效。
不知道是什么导致了这一点,所以任何提示或建议都非常感谢!
- 编辑1 -
Input::all();
的结果是
array(2) {
["latitude"]=>
string(10) "50.8809794"
["longitude"]=>
string(9) "4.6920714"
}
答案 0 :(得分:0)
这不是一个解决方案,而是一种清理代码的方法:
curl
,而是可以使用Request::create()
和Route::dispatch()
。protected $fillable
属性来清理新条目。您的代码可以成为:
public function store()
{
// This is for saving the entry
$location = new Location();
$location->fill(Input::all());
$location->save();
// This is for the cURL
// (assuming this is a GET requst, but other methods are available)
$request = Request::create('/path/to/url/', 'GET');
$response = Route::dispatch($request);
// Do stuff with the $response or just return it
return $response;
}