php - 从相关模型 laravel 获取 id

标签 php laravel eloquent relationship

我在两个对象 TagPost 之间设置了多对多关系。 现在,我必须检查复选框列表中的帖子标签,如下所示:

//Load all possible tags in the controller
//and send it to view
$allTags = \App\Tag::all();
return view('post.edit')->with('allTags');

在 View 中:

@foreach($allTags as $tag)
    <input type="checkbox" name="tags[]" value="{{ $tag->id }}"/>
    {{ $tag->description }}
@endforeach

现在,当用户重新加载页面时,我必须选中这些复选框。

我的问题是:

这当然有效,但对我来说似乎矫枉过正

$relatedTags = [];
foreach($post->tags as $tag){
    $relatedTags[]= $tag->id;
}

有没有办法只获取 ID 而无需加载所有这些对象?

类似于:$relatedTags = $post->tags()->ids ?

最佳答案

您可以尝试这样查询结果:

$relatedTagIds = $post->tags()->select('id')->get()->pluck('id')->toArray();

这就是您获得清晰的标签 ID 列表的方式。

关于php - 从相关模型 laravel 获取 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37036583/

相关文章:

javascript - Vue + Laravel : How to properly download a PDF file?

php - 如何在 Laravel 中将 count(*) 设置为字段名称

php - 使用PHP自动打印网页

javascript - Joomla 和 WordPress 上的外部 JS 未加载

PHP 将基本 URL 相对路径的 URL 格式解析为绝对路径

laravel - 在 Rest api 中编写链接的 Eloquent 效率

laravel - 如何使用 Eloquent 平均多列?

php - PHP 到 CodeIgniter 的语法

php - Laravel 的 ajax 演示,一步一步

php - Eloquent ORM - 为什么 Laravel 不认为这两个对象是相同的?