2016-05-11 5 views
1

Новое в Yii2 и изучите некоторые примеры из учебников, попробуйте скопировать код и использовать его на моей собственной демонстрационной версии, но, похоже, не работают. Вот код:Новичок - Yii2: Невозможно отобразить данные на контроллере

учебник - Контроллер:

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]); 
    } 

учебник - Вид:

<?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> 

Использование print_r ($ данных), и это показывает ниже:

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 ()) 

Но на мой собственный код: Контроллер:

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]); 
    } 

Вид:

<?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> 

Мой print_r ($ инвентарный), как это:

Array ([0] => Array ([id] => 1 [name] => Apple [office] => 1 [warehouse] => 2) [1] => Array ([id] => 2 [name] => Android [office] => 2 [warehouse] => 1)) 

И использовать Еогеасп() {}, но не может показать какие-либо данные, как исправить это?

+0

Перед открыть горячую воду или изобретать Weel другой раз я предлагаю вам использования Gii для генерации кода по умолчанию Crud MVC и увидеть результат. .выбывая так много работы http://www.yiiframework.com/doc-2.0/guide-start-gii.html – scaisEdge

+0

Я хочу использовать foreach() вместо использования Gridview на моей демонстрационной версии, из самого понятного, что я узнали, что Gii использует множество встроенных виджетах, которые пока не я предпочитаю. – newbrant

+0

вы получаете данные 'asArray()' и получаете их как объект ('$ item-> id')! попробуйте удалить часть '-> asArray()' из контроллера. если это не работает, укажите сообщение об ошибке, которое вы задаете. – leninhasda

ответ

0

В коде имеется вложенная тр (попробуйте удалить)

<table class = "table table-hover"> 
    <tr> 
     <th>ID</th><th>Model</th><th>Office</th><th>Warehouse</th> 
    </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> 
     <td>?<td>Apple</td><td>1</td><td>2</td> 
    </tr> 
</table> 
+0

привет, удален и в том же выпуске, любая другая идея, по-моему, мой код неправильный? – newbrant

+0

Если вы получаете данные asArray, попробуйте получить доступ к массиву, а не как к объекту. У меня есть ответ на вопрос – scaisEdge

Смежные вопросы