Я не знаю точно, как это работает, поэтому я спрашиваю. Я все еще работаю над Системой Бюллетеня, и теперь я хочу под каждой категорией , a подкатегории.Недопустимый аргумент для foreach() в laravel 5.3
Я сделал это, используя следующую нить на LaraCasts: https://laracasts.com/discuss/channels/eloquent/eloquent-getting-subcategories-from-the-categories
Теперь мой IndexController выглядит следующим образом:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Thread;
use App\Chat;
use App\Category;
class IndexController extends Controller
{
/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$threads = Thread::all()->toArray();
$chats = Chat::orderBy('id', 'DESC')->take(50)->with('author')->get();
$categories = Category::with('sub_category')->get();
return view('index', compact('threads','chats','categories'));
}
}
Это моя Категория Модель:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
public function sub_category()
{
return $this->belongsTo(self::class, 'parent_id', 'id');
}
public function parent_category()
{
return $this->hasMany(self::class, 'id', 'parent_id');
}
}
Мое мнение (index.blade.php):
@foreach($categories as $category)
<div class="col-md-8">
<div class="panel panel-primary">
<div class="panel-heading"><i class="fa fa-angle-right" aria-hidden="true"></i> {{ $category->caption }}</div>
<div class="panel-body">
@foreach($category->sub_category as $sub_category)
<div class="row forum-row">
<div class="col-xs-12 col-md-8 col-sm-8">
<div class="hidden-xs visible-sm visible-lg visible-md pull-left forum-icon-read">
<i class="fa fa-comment"></i>
</div>
<a href="#">{{ $sub_category->caption }}</a><br>
<small>{{ $sub_category->desc }}</small>
</div>
<div class="col-xs-12 col-md-4 col-sm-4 forum-latest-container">
<p class="forum-data cutoff"><a href="#">Test</a></p>
<small>
door <a class="Donateur" href="/user-Sygun">Sygun</a>
<p class="forum-data">
2 minuten geleden </p>
</small>
</div>
</div>
@endforeach
</div>
</div>
</div>
@endforeach
У меня также есть две таблицы базы данных:
Sub_categories (идентификатор, подпись, parent_id, min_rank, убывание)
Категории (id, подпись, min_rank, desc)
Сообщение об ошибке я получаю:
Недействительного аргумент для Еогеаспа()
Может ли вы сказать мне, что это правильный путь для достижения этой цели?
У вас есть две таблицы в ваших DB 'Sub_categories' и' Categories'? –
Да У меня есть @AmitGupta – Sygun
Является ли '$ category-> sub_category' массивом? (Verify by 'var_dump ($ category-> sub_category);' перед внутренним циклом) - возможно, вы просто ищете вместо цикла '$ category'? – Qirel