Neu zu Yii2 und lernen Sie einige Demo von Tutorials, versuchen, Code zu kopieren und auf meiner eigenen Demo zu verwenden, aber scheinen nicht zu funktionieren. Hier ist der Code:Neuling - Yii2: Kann keine Daten anzeigen von Controller
Tutorial - Controller:
namespace app\controllers;
use yii\web\Controller;
use app\models\Article;
use Yii;
class ArticleController extends Controller{
public function actionIndex(){
$article = Article::find();
//echo $article->count();
$pagination = new \yii\data\Pagination(['totalCount'=>$article->count(), 'pageSize'=>3]);
$data = $article->offset($pagination->offset)->limit($pagination->limit)->all();
//print_r($data);
return $this->render('index',['data' => $data, 'pagination' => $pagination]);
}
Tutorial - Ausblick:
<?php
use yii\helpers\Url;
?>
<p style = "text-align:right">
<a href="<?=Url::to(['add'])?>" class="btn btn-primary">ADD</a>
</p>
<table class="table table-hover">
<tr>
<th>id</th><th>Title</th><th>Count</th><th>Status</th><th>Update Time</th><th>By</th>
</tr>
<?php print_r($data); foreach($data as $v){?>
<tr>
<td><?=$v->id?></td><td><?=$v->title?></td><td><?=$v->count?></td><td><?=($v->status == '1' ? 'Y' :'N')?></td>
<td><?=date("Y-m-d H:i:s",$v->update_date)?></td>
<td><a href="<?=Url::to(['edit', 'id'=>$v->id])?>">Edit</a> | <a href="<?=Url::to(['delete','id'=>$v->id])?>">Del</a></td>
</tr>
<?php }?>
</table>
<div style="float:right">
<?=\yii\widgets\LinkPager::widget([
'pagination' => $pagination,
'options' =>[
'class' =>'pagination',
],
])
?>
</div>
Verwenden print_r ($ data), und es zeigt unter:
Array ([0] => app\models\Article Object ([_attributes:yii\db\BaseActiveRecord:private] => Array ([id] => 1 [flag] => 0 [title] => 13123OOOO [description] => tttt1 [content] => tstsets
[count] => 1 [status] => 1 [update_date] => 1462291610 [date] => 0) [_oldAttributes:yii\db\BaseActiveRecord:private] => Array ([id] => 1 [flag] => 0 [title] => 13123OOOO
[description] => tttt1 [content] => tstsets [count] => 1 [status] => 1 [update_date] => 1462291610 [date] => 0) [_related:yii\db\BaseActiveRecord:private] => Array ()
[_errors:yii\base\Model:private] => [_validators:yii\base\Model:private] => [_scenario:yii\base\Model:private] => default [_events:yii\base\Component:private] => Array ()
[_behaviors:yii\base\Component:private] => Array ())
Aber auf meinem eigenen Code: Controller:
namespace app\controllers;
use yii\web\Controller;
use app\models\Inventory;
class InventoryController extends Controller{
public function actionIndex(){
//$inventory = new Inventory();
$inventory = Inventory::find()->asArray()->all();
print_r($inventory);
return $this->renderpartial('index',['inventory' => $inventory]);
}
Ausblick:
<?php
use yii\helpers\Html;
use yii\helpers\Url;
echo "<br>";
print_r($inventory);
?>
<h2>Inventory Status</h2>
<table class = "table table-hover">
<tr>
<th>ID</th><th>Model</th><th>Office</th><th>Warehouse</th>
</tr>
<tr>
<?php foreach($inventory as $item){ ?>
<tr>
<td><?=$item->id ?></td><td><?=$item->name ?></td><td><?=$item->office ?></td><td><?=$item->warehouse ?></td>
</tr>
<?php }?>
</tr>
<tr>
<td>?<td>Apple</td><td>1</td><td>2</td>
</tr>
</table>
Mein print_r ($ Inventar) ist wie folgt:
Array ([0] => Array ([id] => 1 [name] => Apple [office] => 1 [warehouse] => 2) [1] => Array ([id] => 2 [name] => Android [office] => 2 [warehouse] => 1))
Und verwenden foreach() {} kann aber keine Daten zeigen, wie man das Problem lösen?
Bevor das heiße Wasser entdecken oder die weel ein weiteres Mal, wenn ich Sie Nutzungs Gii vorschlagen erfinden das Ergebnis Standardcode crud MVC zum Erzeugen und sehen. .avoiding so viel Arbeit http://www.yiiframework.com/doc-2.0/guide-start-gii.html – scaisEdge
Ich möchte foreach() anstelle von Gridview auf meiner Demo verwenden, aus dem verständlichsten was ich habe gelernt, die Gii verwendet viele eingebaute Widgets, die nicht meine bisher bevorzugte. – newbrant
Sie erhalten Daten 'asArray()' und greifen auf sie als Objekt zu ('$ item-> id')! Versuchen Sie den '-> asArray()' Teil von Ihrem Controller zu entfernen. Wenn das nicht funktioniert, fügen Sie Ihre Fehlermeldung hinzu, die Sie bei der Frage erhalten. – leninhasda