所以这是一个非常复杂的问题。继我上一期的问题后,该问题显示了我如何将数组保存到数据库中。 "Array to string conversion" errorr Laravel - Trying to save array to database - 我可能需要更改保存到数据库的方式才能使其正确显示。
我在laravel中使用google maps api,用户可以在其中创建路径,将其保存(到数据库),当他们登录时可以再次查看并编辑或删除。
航点功能有效,所以点击+按钮会出现更多输入字段 - 这是用户添加它们的方式。
航路点在shows.blade
中起作用 var counter = 1;
var limit = 10;
var i = 0;
function addInput(divName) {
if (counter == limit) {
alert("You have reached the limit of adding " + counter + " additional destinations");
} else {
var newbr = document.createElement('br');
var newinput = document.createElement("input");
newinput.setAttribute("name","waypoints");
newinput.setAttribute("autocompute","on");
newinput.setAttribute("type", "text");
newinput.setAttribute("class", "form-control");
// newin = (counter + 1) + "<input type=text name=waypoints autocomplete=on>";
document.getElementById(divName).appendChild(newbr);
document.getElementById(divName).appendChild(newinput);
counter++;
i++;
console.log("cntr=" + counter + " i=" + i + " waypoints.length=" +document.getElementsByName("waypoints"));
// var inputw = waypoints[i];
var autocompletew = new google.maps.places.Autocomplete(newinput);
autocompletew.setComponentRestrictions({'country':['uk','irl']});
}
}
它保存到数据库,如myroutescontroller.php
所示public function store(Request $request)
{
if (Auth::check()) {
Myroutes::create([ //posting to acc table
'user_id' => Auth::user()->id,
'start' => $request->start,
'end' => $request->end,
'waypoints' => $request->waypoints
]);
return redirect('/');
} else {
return redirect('/login');
}
}
并在show.blade中显示数据库
<div id="dynamicInput" class="form-group">
<label>Additional Destinations</label>
<input type="text" name="waypoints" class="form-control" autocomplete="on" value="{{ $myroute->waypoints }}">
</div>
<input type="button" class="btn btn-secondary" value="+" onClick="addInput('dynamicInput');" style="padding:0 10px;">
由于航点在数据库中保存为字符串,如果航线有多个航点,则其列在一个输入字段中,如下图所示。 showing from database
它应该如下所示(这是用户创建并添加到数据库的路径)。 adding to database
我非常感谢任何想法和帮助,因为我知道它非常复杂,谢谢!
答案 0 :(得分:0)
将数组保存为包含json_encode($array)
的字符串,然后将其检索为json_decode($array)
。