我在 Laravel 中使用 crud 技术,并且在通过一种形式从多个 table 中编辑和删除数据时遇到问题

I am using crud technique in Laravel, and having trouble in editing and deleting data from multi table through one form

我遇到了这个错误:

Undefined property: Illuminate\Database\Query\Builder::$id

代码:

$info = DB::table('info')
    ->join('projectdetails', 'info.id', '=', 'projectdetails.project_id')
    ->select('info.*', 'projectdetails.*')
    ->where('info.id',$id);
    //dd($info);
    return view('info.edit', compact('info'));

edit.blade.php

<form action="{{route('info.update',$info->id)}}" method="post">

您的 $info 是一个 Query Builder 对象,请尝试:

->where('info.id',$id)->first();

通过以下语法将参数传递给路由:

{{ route('info.update', ['id' => $info->id]) }}

其次,您的控制器应该会收到 $id:

public function method(Request $request, $id)
{

    // logic
}

最后,您必须通过在路由助手中使用 {id} 选项来确保您的路由需要 id。一个例子是:

Route::get('model/{id}', 'ModelController@store');

希望对您有所帮助。