2016-02-17 3 views
0

Пытаясь достичь с Laravel 5.2 в красноречивой моделиLaravel 5 Регистрация таблицы запроса с тем, где статья

У меня есть 2 таблицы:

1) проекты (идентификатор, Projectname, users_id)

2) TODO (идентификатор, todoName, ProjectID [ID], users_id)

я хочу присоединиться к этим таблицу и Foreach содержимое таблицы с

->where('users_id','=',Auth()->User()->id) 

Части кода

$todos = DB::table('to_dos')->join('projects','to_dos.projectID','=','projects.projectName') 
                  ->where('users_id','=',Auth()->User()->id) 
                  ->get(); 

Цель состоит в том, чтобы напечатать toDoName и Projectname

@foreach($todos as $todo) 
    {{$todo -> ToDoName}} 
    {{$todo -> projectName}} 
    <br> 
@endforeach 

ответ

3

Самым лучшим способом, чтобы создать связь между таблицами и нетерпеливой нагрузкой отношения.

В вашей Todo модели, добавьте следующий метод:

public function project() 
{ 
    return $this->belongsTo('App\Project'); 
} 

Теперь от контроллера, вы можете просто позвонить:

$todos = Todo::with('project')->where('user_id', Auth::id()); 

Это даст вам Todos в настоящее время вошел в пользователь с соответствующими проектами.

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

@foreach($todos as $todo) 
    {{ $todo->name }} 
    {{ $todo->project->name }} 
@endforeach 

Примечание: Это будет хорошо, если вы будете следовать некоторым соглашениям. Столбцы таблицы должны быть следующими:

users стол -> Модель: User.php
колонны: id, name ....

projects стола -> Модель: Project.php
колонны: id, name, user_id

todos table-> Модель:
колонны: id, name, project_id, user_id.

Помните, что когда вы следуете за конвенциями по поводу конфигураций, все намного проще.

0

Попробуйте это,

$todos = DB::table('to_dos as T') 
->leftjoin('projects as P','T.projectID','=','P.projectName') 
->Where('T.users_id',Auth()->User()->id) 
->get(); 
+0

Как это отличается от OP исходный код? Что вы пытаетесь решить здесь? – patricus

+0

@patricus его где условие не упоминает, какие таблицы users_id. –

+0

@JobinJose, как мне совместить колонку. поскольку столбец дублирует – Ajaxcbcb

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