Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何设置外键以获取其他表中的一行?Laravel 8调试_Php_Html_Mysql_Laravel - Fatal编程技术网

Php 如何设置外键以获取其他表中的一行?Laravel 8调试

Php 如何设置外键以获取其他表中的一行?Laravel 8调试,php,html,mysql,laravel,Php,Html,Mysql,Laravel,更新:这是我的最新作品。如何设置“食物id”以从食物表中获取“id”?我已将其引用到“id”,但它仍然没有任何值。有人能帮忙吗? 谢谢 这是我所有的密码。我有两张食物和图片的桌子。我试着让我的“食物id”来自图像,从食物表中获取“id”。我尝试将存储产品数据和图像的代码组合到我的存储功能中(我这样做是因为我只想在视图中使用一种表单)。如果您对我的代码不清楚,请随时询问:)) 在迁移中创建_images_table.php Schema::create('images', function (B

更新:这是我的最新作品。如何设置“食物id”以从食物表中获取“id”?我已将其引用到“id”,但它仍然没有任何值。有人能帮忙吗? 谢谢

这是我所有的密码。我有两张食物和图片的桌子。我试着让我的“食物id”来自图像,从食物表中获取“id”。我尝试将存储产品数据和图像的代码组合到我的存储功能中(我这样做是因为我只想在视图中使用一种表单)。如果您对我的代码不清楚,请随时询问:))


在迁移中创建_images_table.php
Schema::create('images', function (Blueprint $table) {
        $table->id();
        $table->unsignedBigInteger('food_id');
        $table->String('filename');
        $table->timestamps();

        $table->foreign('food_id')
            ->references('id')
            ->on('food')
            ->onDelete('cascade');
    });
在我的食物控制器里

<?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');
}

创建具有关系的条目时,必须指定食物表上的哪个条目与图像表中的“食物id”列相关。 您应该在图像输入之前创建食物输入

$foods = new Food([
    'name'            =>  $request->get('name'),
    'description'     =>  $request->get('description'),
    'price'           =>  $request->get('price'),
    // column name => frontend name
]);
$foods->save();
创建foods条目后,可以通过以下方式从foods对象指定foods_id:

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

我们真的需要查看您的代码。好吧,请稍候。首先,您需要使用
dd($request->all())检查请求中收到的参数尝试一下,然后将结果也发布到问题中。所有数据都丢失了,或者只有图像的数据?@ZakariaAcharki我现在解决了问题,但它抛出了这个。food_id是连接到food table中id的外键。你知道怎么解决这个问题吗?
$foods = new Food([
    'name'            =>  $request->get('name'),
    'description'     =>  $request->get('description'),
    'price'           =>  $request->get('price'),
    // column name => frontend name
]);
$foods->save();
$Upload_model = new Images;
$Upload_model->filename = json_encode($data);
$upload_modal->food_id = $foods->id:
$Upload_model->save();