我目前正在为我的网站开发api以使用谷歌地图。我在社区的帮助下成功开发了api。但它只输出一页。我需要它是动态的,因为结果将基于用户的输入。现在我的控制器看起来像这样
<?php
namespace App\Http\Controllers;
use App\Post;
use App\Http\Requests;
class ApiController extends Controller
{
public function index() {
$results = [];
foreach (Post::all() as $post)
{
$results[] = [
'id' => $post->id,
'marketname' => $post->subtitle,
];
}
return ['results' => $results];
}
}
但这不是动态的。
我在想复制我的搜索并修改它。看起来像这样
<?php
namespace App\Http\Controllers;
use App\Jobs\TagIndexData;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Post;
use App\Video;
use App\Tag;
use App\Http\Controllers\Controller;
class TagController extends Controller
{
public function index(Request $request)
{
$query = $request->get('q');
$posts = Post::where('title', 'LIKE', "%{$query}%")
->orwhere('subtitle', 'LIKE', "%{$query}%")->get();
$videos = Video::where('title', 'LIKE', "%{$query}%")
->orwhere('subtitle', 'LIKE', "%{$query}%")->get();
$tag = $request->get('tag');
$data = $this->dispatch(new TagIndexData($tag));
$layout = $tag ? Tag::layout($tag) : 'tags.layouts.index';
return view($layout, $data)->withPosts($posts)->withVideos($videos);
}
}
但我不明白如何在mysql中存储json,也不知道如何查询和输出它。任何帮助都将不胜感激。
要清楚我想要什么。我想要一个人输入他们的邮政编码或地址,然后返回一个谷歌地图,上面填充了指示附近事件的标记。
我正在尝试修改一个教程,我使用谷歌与谷歌混合的农贸市场api。部分javascript看起来像这样
accessURL="http://search.ams.usda.gov/farmersmarkets/v1/data.svc/zipSearch?zip=" + userZip/address;
其中输入了userZip /地址,我想用它来填充谷歌地图
欢迎任何有关如何构建此建议的建议
答案 0 :(得分:1)
从控制器返回JSON非常简单。只需返回集合:
public function index() {
$posts = Post::all();
return $posts;
}
或者,如果您只需要返回某些字段,请使用select()
:
public function index() {
$posts = Post::select(['id', 'subtitle as marketname'])->get();
return $posts;
}