簡體   English   中英

如何設置我的外鍵以在我的另一個表中抓取一行? Laravel 8 調試

[英]How do I set my foreign key to grab a row in my other table? Laravel 8 Debugging

更新:這是我最新的問題 如何設置“food_id”以從餐桌上獲取“id”? 我已經將它引用到“id”,但它仍然沒有任何價值。 有人可以幫忙嗎? 謝謝!

這是我所有的代碼。 我有兩張食物和圖片表。 我試圖讓我的'food_id'從圖像中獲取'id',它來自食物表。 我試圖在我的商店功能中結合存儲產品數據和圖像的代碼(我這樣做是因為我只想在我的視圖中使用一種形式。)。 如果您對我的代碼不清楚,請隨時詢問:))


在遷移中 create_images_table.php
<?php

namespace App\Http\Controllers;

use App\Models\Images;
use App\Models\Cart;
use App\Models\Food;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Session;

public function store(Request $request)
{
    $this->validate($request, [
        'filename' => 'required',
        'filename.*' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048'
    ]);

    
    if ($request->hasfile('filename')) {
        foreach ($request->file('filename') as $image) {
            $name = $image->getClientOriginalName();
            $image->move(public_path() . '/images', $name); // folder path
            $data[] = $name;
        }
    }

    $Upload_model = new Images;
    $Upload_model->filename = json_encode($data);
    $Upload_model->save();

    $foods = new Food([
        'name'            =>  $request->get('name'),
        'description'     =>  $request->get('description'),
        'price'           =>  $request->get('price'),
        // column name => frontend name
    ]);

    $foods->save();

    session()->flash('success', 'Food successfully added.');
    return redirect()->route('welcome');
}

在我的 FoodController

@section('content')
<div class="w3-container w3-black w3-padding-64 w3-xxlarge" id="cart">
    <div class="w3-content">
        <div class="w3-container w3-padding-32 w3-sand">
            <h1 class="w3-center">
            <span> Add New Food </span>
            </h1>
            <hr class="new1">
            
            <form method="post" action="{{ route('food.store') }}">
                @csrf
                <p><input class="w3-input w3-padding-16 w3-border" type="text" placeholder="Food Name" required name="name"></p>
                <p><input class="w3-input w3-padding-16 w3-border" type="text" placeholder="Description" required name="description"></p>
                <p><input class="w3-input w3-padding-16 w3-border" type="text" placeholder="Price" required name="price"></p>
                <label> Images </label>
                <p><input class="class-control" type="file" placeholder="filename" required name="filename[]" multiple></p>
                <p><button class="w3-button w3-dark-grey w3-block  w3-hover-green" type="submit"> ADD! </button></p>
            </form>   

        </div>
    </div>
</div>
@endsection

在我的 create.blade.php

// Food Routes
Route::resources([
    'food' => App\Http\Controllers\FoodController::class,
]);

在我的 web.php

 // Food Routes Route::resources([ 'food' => App\Http\Controllers\FoodController::class, ]);

在創建具有關系的條目時,您必須指定 food 表上的哪個條目與 images 表中的 food_id 列相關。 您應該在圖像輸入之前創建食物條目。

$foods = new Food([
    'name'            =>  $request->get('name'),
    'description'     =>  $request->get('description'),
    'price'           =>  $request->get('price'),
    // column name => frontend name
]);
$foods->save();

創建食品條目后,您可以通過以下方式從食品 object 中指定 food_id,

$Upload_model = new Images;
$Upload_model->filename = json_encode($data);
$upload_modal->food_id = $foods->id:
$Upload_model->save();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM