ฉันกำลังพยายามสร้างระบบฟอรัมที่เรียบง่าย
ฉันมีโมเดลชื่อ Category.php ซึ่งฉันกำหนดตารางและขยาย Eloquent
ฉันมี CategoryController.php ซึ่งเป็นตัวควบคุมที่เชี่ยวชาญ ภายในเมธอด index() ฉันกำลังทำ:
$categories = Category::all();
ซึ่งฉันคิดว่าควรส่งคืนอาร์เรย์ของวัตถุ สิ่งนี้ใช้ได้ดีกับโปรเจ็กต์อื่นของฉัน
อย่างไรก็ตาม เมื่อฉันพยายามเรียกใช้สิ่งนี้ผ่าน foreach ก็ไม่มีอะไรสะท้อนกลับ ฉันได้ลองเปลี่ยนชื่อคอนโทรลเลอร์และโมเดลเป็น ForumController และ Form ตามลำดับ และมันก็ใช้งานได้ทันที
มีความคิดอะไรบ้าง? บางทีชื่อหมวดหมู่อาจถูกสงวนไว้โดย Laravel และกำลังแทนที่ฟังก์ชันการทำงานที่ฉันต้องการ
CategoryController.php:
<?php
class CategoryController extends \BaseController {
protected $layout = 'master';
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
//
$categories = Category::all();
$this->layout->content = View::make('category.index', array('categories' => $categories));
}
Category.php (รุ่น):
<?php
class Category extends Eloquent {
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'categories';
}
Category/index.blade.php (ดู):
@section('content')
<ul>
@foreach ($categories as $category)
<li><a href="/th/category/{{ $category->slug }}">{{ $category->name }}</a></li>
@endforeach
</ul>
@stop
ฐานข้อมูลของฉันได้รับการตั้งค่าอย่างถูกต้อง เมื่อฉันเรียกใช้ $category = Category::find(1); มันส่งคืนหมวดหมู่อย่างถูกต้องด้วยรหัส 1 ซึ่งฉันสามารถใช้เป็นวัตถุได้
foreach
ไปกับคอลเลกชั่นเลยด้วยซ้ำ เพราะถ้าคุณมี คุณจะพบว่ามันได้ผล - person alexrussell   schedule 16.02.2014foreach
(แทนที่จะเป็นdd
ซึ่งไม่ค่อยทำงานเหมือนกับที่สามารถตรวจสอบคุณสมบัติส่วนตัวและการป้องกันของวัตถุได้ และไม่ใช่ เวทย์มนตร์) เพื่อให้ผู้อื่นสามารถดูว่ามีปัญหากับโค้ดforeach
ing จริงของคุณหรือไม่ - person alexrussell   schedule 16.02.2014Category
เป็นชื่อรุ่น - ลองพูดแบบนี้สิ แอป Laravel อย่างน้อย 25% ที่นั่นอาจมีโมเดลCategory
- แต่อาจเป็นเพราะรหัสของคุณในบริบทที่กว้างขึ้น เป็นเรื่องดีที่คุณแก้ไขโพสต์ของคุณแล้ว แต่คุณยังคงไม่ให้รหัสที่ตรงกันซึ่งใช้ไม่ได้ในรูปแบบforeach
- จะเป็นประโยชน์มากสำหรับเราที่จะเห็นโค้ดนั้น เผื่อว่ายังมีบางอย่างแปลก ๆ อยู่ที่นั่น ฉันรู้ว่าคุณบอกว่าการเปลี่ยนไปใช้รุ่นอื่นก็ใช้ได้ดี แต่ทำไมไม่ลองจัดเตรียมมันดูล่ะ? - person alexrussell   schedule 16.02.2014foreach ($categories)
ดูเหมือนจะไม่ได้รับการวนซ้ำเพียงครั้งเดียว) หรือพิมพ์ HTML แต่ฟิลด์ในแต่ละ$category
ไม่ออกมา นอกจากนี้ คุณไม่มีรหัสเช่นView::share('categories', $someValue)
ที่ไหนเลยใช่ไหม นั่นอาจเป็นเหตุผลเบื้องหลังชื่อตัวแปรที่สงวนไว้อย่างเห็นได้ชัด - person alexrussell   schedule 17.02.2014