我试图覆盖一个由2个结构组成的结构列表。我在结构中正确填充数据没有问题,问题是当我尝试将其呈现到HTML中时。我无法展示任何内容。
这是我的首个网络项目,我正在一个网站上为小型企业销售汽车。我的数据库被设计为1..M的汽车到图片。所以在主车页面上。我想加载一张带有汽车细节的图片。我尝试使用地图,但是当我想要打印出1张图片以便在公共ID上找到正确的汽车详细信息时,我遇到了一个问题。所以我想使用第三个结构,我为每个ID提取一张图片。
type Car struct {
Id int
Year, Make, Model, Price string
}
type Pics struct {
Id int
Path string
}
type CarDetail struct {
Cars Car
Pic Pics
}
func cars(w http.ResponseWriter, r *http.Request){
//loads all the cars in the database
cars := loadCars()
carDetails := make([]CarDetail,0)
carIds := make([]int,len(cars))
for i := 0; i < len(cars); i++{
//gets all the car IDs in the db
carIds[i] = getCarID(cars[i])
photoPath := loadSinglePhoto(carIds[i]) //now have the single photo
n := CarDetail{Cars:cars[i],Pic:photoPath}
carDetails = append(carDetails, n)
}
fmt.Println(carDetails) //getting car details the way I want
tpl.ExecuteTemplate(w, "cars", &carDetails)
}
在我传入结构之前的print语句以我想要的方式提供信息。
[{{20 2009 Honda Accord 5000} {20 public / pics / questionMark.jpg}} {{21 2009 Acura TLX 14000} {21 public / pics / kia.png}} {{22 2015 Kia Sportage 34000} {22 public / pics / kia.png}}]
现在当我尝试在html
中渲染它时{{range .}}
<h3>{{.Cars.Make}} - {{.Cars.Model}} - {{.Cars.Year}}</h3>
<img src="{{.Pic.Path}}" id="{{.Pic.Id}}">
{{end}}
随意批评我的代码或建议另一种方式。提前谢谢!
答案 0 :(得分:1)
总体层面的一些评论:
除此之外它应该可行,请在此处查看稍微重构的工作示例: https://play.golang.org/p/CPnad9FxaB
那么你自己的代码究竟出了什么问题?
答案 1 :(得分:0)
所以我找到了罪魁祸首。奇怪的是,一些注释掉前面的HTML代码导致模板无法呈现。我不确定为什么。
require_once("../resource/Database.php");
$query ="SELECT username FROM users";
$select = $db->prepare($query);
$select->execute(array());
# You may have a snippet of code that you are missing, but incase not,
# you have to fetch the results while() to iterate or your results. I just
# copied your code and focused on the push, not the fact you didn't fetch
while($rs = $select->fetch(PDO::FETCH_ASSOC)) {
$names[] = array('name'=>$rs['citynames']);
}
感谢您的帮助和建议!