[英]CodeIgniter not pushing variable to View
因此,我正在为用户构建一个应用程序,使其能够将游乐设施上传到网站,并使其他用户可以看到它们。 唯一的问题是我的控制器显然没有正确地将变量推入视图,从而使我出现以下错误:
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: ridesArray
Filename: views/rides.php
Line Number: 93
我不确定自己在做什么错,但这是代码。 另外,因为我知道会被问到,是的,我的模型正在返回真实数据。 此外,视图中的var_dump()返回null。 ridesArray()函数只是一个从模型收集的信息组成一个整齐的数组,它可以工作。 这里的问题是变量没有被发送到视图
更新:我已经添加了函数ridesArray()的代码。 我也忘了提我也遇到这个错误:
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: views/rides.php
Line Number: 96
控制器:
function index(){
$userrides = $this->RidesModel->getAllRides();
$rideData = $this->ridesArray($userrides);
$ridesArray = array('ridesArray' => $rideData);
$this->load->view('rides', $ridesArray);
}
function ridesArray($data){
$newarray = array();
foreach($data as $object){
$array = json_decode(json_encode($object), true);
$id = (int)$array['id'];
$title = $array['title'];
$date = $array['date'];
$ridetime = $array['ridetime'];
$saddress = $array['StartAddress'];
$scity = $array['StartCity'];
$sstate = $array['StartState'];
$szip = $array['StartZip'];
$ezip = $array['EndZipcode'];
$ecity = $array['EndCity'];
$image = $array['image'];
$newdata = array(
'id' => $id,
'title' => $title,
'date' => $date,
'ridetime' => $ridetime,
'StartAddress' => $saddress,
'StartCity' => $scity,
'StartState' => $sstate,
'StartZip' => $szip,
'EndZipcode' => $ezip,
'EndCity' => $ecity,
'image' => $image
);
array_push($newarray, $newdata);
}
return $newarray;
}
模型:
function getAllRides(){
$sql = "select * from rides order by date";
$query = $this->db->query($sql);
$result = $query->result();
return $result;
}
视图:
<div class="container col-lg-12 col-md-12 col-sm-12 user-cont">
<ul class="container col-lg-10 col-md-10 col-sm-10 col-lg-offset-1 col-md-offset-1 col-sm-offset-1">
<?php
var_dump($ridesArray);
if(isset($ridesArray)){
foreach($ridesArray as $out){
echo "<li>";
echo "<h3>".$out['title']."</h3>";
echo "<img class='img-responsive img-thumbnail' src=". base_url(). "uploads/".$out['image']."/>";
echo "<p>".$out['date']." At ".$out['ridetime']. "</p>";
echo "<p>Starts At ".$out['StartAddress']." ".$out['StartCity']." ".$out['StartZip']." "."</p>";
echo "<p>Ends At ".$out['EndCity']." ".$out['EndZipode']."</p>";
echo "<span class='glyphicon glyphicon-plus'></span>";
echo "</li>";
}
}
?>
</ul>
这正是Sparky在其评论中所说的。
更改
$ridesArray = array('ridesArray' => $rideData);
至
$ridesArray['ridesArray'] = $rideData;
那将消除错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.