Как создать запрос с несколькими таблицами в Laravel - PullRequest
0 голосов
/ 02 июня 2019

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

запрос, который мне нужен:

SELECT orders.user_id, orderitem.product_id, orderitem.orderItem_quantity, product.product_price, product.product_imgPath,product.product_name 
FROM orderitem, orders, product, users
WHERE orders.user_id = '$_Session[user_id]'
AND orderitem.product_id = product.product_id
AND orderitem.order_id = orders.order_id
AND orders.order_status = 1

и я пытаюсь эти коды:

1

$cartProducts = DB::table('orderitem')
        ->join('product','product.product_id','=','orderitem.product_id')
        ->join('orders','orders.order_id','=','orderitem.order_id')
        ->where('orders.order_status','=','Waiting')
        ->where('orders.user_id','=',$userId)
        ->select('orderitem.*','orders.*','product.*','users.*')
        ->get();

Ошибка, которую я получаю:

SQLSTATE[42S02]: Base table or view not found: 1051 Unknown table 'users'

2

$cartProducts = DB::table('orderitem','orders','products','users')
            ->select('orderitem.*','orders.*','products.*','users.*')
            ->where('orders.user_id','=',$userId)
            ->where('orderitem.product_id','=','product.product_id')
            ->where('orderitem.order_id','=','orders_id')
            ->where('order_status','=','Waiting')
            ->get();

Я получаю ошибку:

SQLSTATE[42S02]: Base table or view not found: 1051 Unknown table 'orders'

И я знаю, что не могу использовать несколько параметров для табличной функции

1 Ответ

0 голосов
/ 02 июня 2019

Использовать отношения laravel https://laravel.com/docs/5.5/eloquent-relationships#one-to-many

Во-первых, в вашей User модели выполните:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    public function images()
    {
        return $this->hasMany('App\Images'); //make sure your images table has user_id column
    }
}

А потом в вашей Image настольной модели:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Image extends Model
{
    public function user()
    {
        return $this->belongsTo('App\User');
    }
}

Теперь в вашем контроллере:

$data = App\Post::user(1)->with('images');
return view('view_name', ["data" => $data]);

Ваш взгляд:

@foreach($data->images as $image)
    <img src="{{ $image->url }}">
@endforeach 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...