Laravel получай роли цветные и не только

Я пытаюсь сделать RBAC в моем собственном программном обеспечении форума.

Пока что разрешения работают, но проблема в том, что когда я хочу добавить цвета к именам пользователей (что есть и в MyBB), что-то не работает, и я не понимаю этого заранее.

Итак, у меня есть ForumController с этим кодом внутри:

<?php

class ForumController extends \BaseController {

public function index()
{
$forums = Forums::orderBy('disp_order', 'asc')->get();
$categories = Categorie::orderBy('disp_order', 'asc')->get();

return View::make('index')->with('forums', $forums)->with('categories', $categories);
}

public function forum($name)
{
$forums = Forums::where('name', '=', str_replace('Forum-', '',str_replace('-', ' ', $name)))->first();
$categories = Categorie::orderBy('disp_order', 'asc')->get();
return View::make('forum')->with('forums', $forums)->with('categories', $categories);
}

public function categorie($name)
{
$categories = Categorie::where('name', '=', str_replace('Categorie-', '',str_replace('-', ' ', $name)))->first();
$threads = Thread::orderBy('date_posted', 'asc')->get();
return View::make('categorie')->with('categories', $categories)->with('threads', $threads);
}

public function thread($title)
{
$thread = Thread::where('title', '=', str_replace('Thread-', '',str_replace('-', ' ', $title)))->first();
$comments = Comment::orderBy('posted_at', 'asc')->get();
return View::make('thread')->with('threads', $thread)->with('comments', $comments);
}

}

Хорошо, все это работает.

Но теперь мне нужно получить роли для пользователей внутри функции thread,

У меня также есть эти модели:

модели

Существует только расширение Eloquent и protected $table внутри этих файлов.

Схема моя role таблица выглядит так:
схема

Я кое-что слышал о принадлежащих и имеющих много людей, но я действительно не понимаю этого …

Я хочу быть в состоянии получить правильный цвет на нужного пользователя.

Итак, схема пользовательской таблицы:

схема пользователя

Я надеюсь, что кто-то может мне помочь, потому что я ищу ответ долгое время.

я использую Laravel4

С наилучшими пожеланиями,

Робин

0

Решение

Вы правы, вам нужно добавить немного отношения:

// In Comment.php, assuming that your comments table has a user_id field.
public function user()
{
return $this->belongsTo(User::class);
}

// In User.php
public function role()
{
return $this->belongsTo(Role::class);
}

Затем настройте свой контроллер на нетерпеливый груз эти отношения.

$comments = Comment::orderBy('posted_at')->with('user.role')->get();

Теперь вы можете показать цвет рядом с комментарием в вашем шаблоне блейда, например:

@foreach ($comments as $comment)
<p>Color: {{ $comment->user->role->colour }}</p>
@endfoeach
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]