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

1) Это моя таблица заказов:

Schema::create('orders', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('user_id')->unsigned();
        $table->integer('category_id')->unsigned();
        $table->integer('product_id')->unsigned();
        $table->integer('variant_id')->unsigned();
        $table->integer('quantity');
        $table->integer('total');
        $table->timestamps();
        $table->foreign('user_id')->references('id')->on('users');
        $table->foreign('category_id')->references('id')->on('categories');
        $table->foreign('product_id')->references('id')->on('products');
        $table->foreign('variant_id')->references('id')->on('variants');
    });

2) Это мой клинок заказа:

<tbody>

        @foreach($orders as $order)
        <tr>
        <td>{{$order->variant_name}}</td>
        <td>{{$order->quantity}}</td>
        <td>{{$order->total}}/-</td>
        </tr>
        @endforeach 
    </tbody>

3) Это мой OrderController:

public function index()
{
    $orders = Order::where('user_id', auth()->user()->id)->get();
    return view('orders', compact('orders', 'variants'));
}

Теперь я хочу напечатать имя варианта в моем блейд-файле, но единственное, что я могу напечатать, это идентификаторы.Я перепробовал много вещей, но все еще не могу получить точный ответ.Я знаю, что это может быть сделано с внешними ключами, но как мне использовать эти внешние ключи для печати имени варианта или чего-либо из таблицы вариантов.

Ответы [ 2 ]

0 голосов
/ 02 января 2019

Обратите внимание, что каждый order сделанный принадлежит одному variant.Итак, в вашей модели order создайте взаимосвязь между моделью order и моделью variant следующим образом:

public function variants(){
    return $this->belongsTo(Variant::class,'variant_id','id');
}

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

<tbody>
    @foreach($orders as $order)
        <tr>
            <td>{{$order->variants()->first()->variant_name}}</td>
            <td>{{$order->quantity}}</td>
            <td>{{$order->total}}/-</td>
        </tr>
    @endforeach 
</tbody>

Это должно сработать.

0 голосов
/ 02 января 2019

Вы можете:

лезвие

<tbody>
    @foreach($orders as $order)
    <tr>
    <td>{{$order->variants->variant_name}}</td>
    <td>{{$order->quantity}}</td>
    <td>{{$order->total}}/-</td>
    </tr>
    @endforeach 
</tbody>

OrderController

public function index(Order $order)
{
    $orders=$order->getList();
    return view('orders', compact('orders', 'variants'));
}

Модель заказа

public function variants(){
   return $this->belongsTo(Variant::class, 'variant_id');
}

public function getList()
{
   return self::with('variants')->where('user_id', auth()->user()->id)->get();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...