我想用屬于帖子的 id 來獲得評論。
Route::get('/', function () {
$post = Post::with([
'comment' => fn ($query) => $query->select('id')
])->find(1);
return $post;
});
但是,comment回應為空。
{
"id": 1,
"title": "Alias iste quo tempore quis totam maxime. Illo fuga qui modi ut quae. Nobis eum soluta quas.",
"body": "Officiis id earum suscipit magnam reiciendis alias fugiat. Deserunt rerum in tempora odit nobis. Sunt similique accusamus suscipit aliquam quia. Sunt harum rem incidunt rerum id nesciunt. Reiciendis rerum placeat sed dolores temporibus ducimus autem. Quidem ullam ut ut voluptatum ea. Et magni aut ut animi ea cupiditate eum. Ut similique consequuntur et enim officiis nobis. Occaecati nostrum sint labore sint quia. Reprehenderit veritatis qui provident eum reprehenderit commodi.",
"created_at": "2022-05-12T10:39:12.000000Z",
"updated_at": "2022-05-12T10:39:12.000000Z",
"comment": null
}
當我洗掉該select方法時,我確實收到了評論,
Route::get('/', function () {
$post = Post::with('comment')->find(1);
return $post;
});
{
"id": 1,
"title": "Alias iste quo tempore quis totam maxime. Illo fuga qui modi ut quae. Nobis eum soluta quas.",
"body": "Officiis id earum suscipit magnam reiciendis alias fugiat. Deserunt rerum in tempora odit nobis. Sunt similique accusamus suscipit aliquam quia. Sunt harum rem incidunt rerum id nesciunt. Reiciendis rerum placeat sed dolores temporibus ducimus autem. Quidem ullam ut ut voluptatum ea. Et magni aut ut animi ea cupiditate eum. Ut similique consequuntur et enim officiis nobis. Occaecati nostrum sint labore sint quia. Reprehenderit veritatis qui provident eum reprehenderit commodi.",
"created_at": "2022-05-12T10:39:12.000000Z",
"updated_at": "2022-05-12T10:39:12.000000Z",
"comment": {
"id": 1,
"post_id": 1,
"comment": "Exercitationem voluptatibus eos velit consequatur aut voluptatem voluptas. Sed et magnam omnis nesciunt dignissimos rerum enim. Accusamus ipsa non aspernatur iure architecto.",
"created_at": "2022-05-12T10:39:13.000000Z",
"updated_at": "2022-05-12T10:39:13.000000Z"
}
}
Post.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
use HasFactory;
public function comment()
{
return $this->hasOne(Comment::class);
}
}
我究竟做錯了什么?
uj5u.com熱心網友回復:
您需要在預加載中定義外鍵。
https://laravel.com/docs/9.x/eloquent-relationships#eager-loading-specific-columns
Route::get('/', function () {
$post = Post::with([
'comment' => fn ($query) => $query->select('id','post_id')
])->find(1);
return $post;
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/477982.html
上一篇:洗掉2個不同字符序列之間的換行符
