我要在laravel中创建DropDowbox,我需要从数据库获取数据到DropDowbox.我已经做过了,但我遇到了问题

Attempt to read property "id" on string

我目前所做的努力都附在下面.谁来帮我解决这个问题. 型号

Batch

class Batch extends Model
{
    protected $table = 'batches';
    protected $primaryKey = 'id';
    protected $fillable = ['name', 'course_id', 'start_date'];
    use HasFactory;

    public function course()
    {
        return $this->belongsTo(Course::class);
    }
}

BatchController

public function create(): View
{
    $courses = Course::pluck('name','id');
    return view('batches.create', compact('courses'));

}

batch view

<select name="course_id" id="course_id" class="form-control">
 @foreach($courses as $item)
<option value="{{ $item->id }}">{{ $item->name}}</option>
 @endforeach

推荐答案

因为$Item是一个字符串(课程名称)而不是一个对象,所以它会抛出一个错误.

要解决此问题,请修改Blade 文件,使其直接同时使用密钥(课程ID)和值(课程名称),如下所示:

<select name="course_id" id="course_id" class="form-control">
    @foreach($courses as $id => $name)
        <option value="{{ $id }}">{{ $name }}</option>
    @endforeach
</select>

Laravel相关问答推荐

LARAVEL 从多个表中获取重复的行

未定义防护 [api] 的授权驱动程序 [api]

我在 laravel 中插入多个复选框值.我怎样才能做到这一点?

从主类别模型 laravel 中获取子类别翻译

如何在生产中的 laravel 应用程序中获取标头请求值?

Laravel PHP 框架的新手. /以外的路由不起作用

Guzzle - Laravel如何使用 x-www-form-url-encoded 发出请求

Eloquent 的集合方法,例如 only 或 except 返回一个空集合

用 laravel 表单确认删除?

Laravel Electron邮件验证模板位置

Laravel 5 - 在控制器文件中为多个路由定义中间件

Laravel 同步错误

调用未定义的方法 Illuminate\Foundation\Application::bindShared()

Blade 中的条件扩展

laravel 如何读取 app/config/app.php 调试变量

Laravel - 使用 Eloquent 查询构建器在 Select 中添加自定义列

如何在 Laravel 测试中禁用选定的中间件

Laravel 5 默认注册后如何发送邮件?

判断行是否存在,Laravel

为什么 phpunit 没有得到 phpunit.xml 中指定的正确 APP_ENV?