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