這是我第一次探索 Codeigniter 4,我按照一些教程來了解基本的 crud 程序。
下面是我使用模型查詢的控制器。
<?php
namespace App\Controllers;
use CodeIgniter\RESTful\ResourcePresenter;
class Project extends ResourcePresenter
{
protected $modelName = 'App\Models\ProjectModel';
public function index()
{
return view('projects/index', ['projects' => $this->model->orderBy('created_at', 'asc')->findAll()]);
}
}
然后下面是我要顯示串列的索引頁面和我有問題的部分。
<?php foreach ($projects as $project) : ?>
<tr>
<td><?= $project->name ?></td>
<td><?= $project->description ?></td>
<td>
<form action="<?php echo base_url('/projects/delete/' . $project->id); ?>" method="post">
<a class="btn btn-outline-info" href="<?php echo base_url('/projects/show/' . $project->id); ?>">
Show
</a>
<a class="btn btn-outline-success" href="<?php echo base_url('/projects/edit/' . $project->id); ?>">
Edit
</a>
<button type="submit" class="btn btn-outline-danger">Delete</button>
</form>
</td>
</tr>
<?php endforeach; ?>
'name' 和 'description' 是存盤在資料庫中的列名。
任何人都可以幫我檢查問題是由于代碼還是其他外部因素,因為即使代碼相同,我嘗試相同教程的朋友也成功了?
以下是顯示的錯誤。

uj5u.com熱心網友回復:
->findAll()回傳一個元素陣列。
代替:?
<td><?= $project->name ?></td>
<td><?= $project->description ?></td>
使用這個:?
<td><?= $project['name'] ?></td>
<td><?= $project['description'] ?></td>
對其他部分執行相同操作。即:$project->id。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/497857.html
上一篇:如何從資料庫表中復制一行并使用codeigniter將其插入到同一個表中
下一篇:如何比較陣列php中的值
