我對 Laravel 相當陌生,所以我認為這是一個新手問題。基本上我嘗試通過靜態 all() 函式檢索我的資料庫資料。但不知何故,我生成的模型實體只填充屬性陣列中的資料,但所有模型屬性都為空。
我有一個簡單的路線
Route::get('/posts', function () {
$posts = App\Models\Post::all();
ddd($posts[0]);
return view('posts', [
'posts' => $posts,
]);
});
和一個簡單的模型
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
use HasFactory;
public $id;
public $title;
public $excerpt;
public $body;
public $published_at;
public $category_id;
protected $fillable = [
'title',
'excerpt',
'body',
'published_at',
'category_id',
];
protected $guarded = ['id'];
public function category() {
return $this->belongsTo(Category::class);
}
}
這就是 ddd() 回傳的內容
App\Models\Post {#1225 ▼
id: null
title: null
excerpt: null
body: null
published_at: null
category_id: null
#fillable: array:5 [?]
#guarded: array:1 [?]
#connection: "mysql"
#table: "posts"
#primaryKey: "id"
#keyType: "int"
incrementing: true
#with: []
#withCount: []
preventsLazyLoading: false
#perPage: 15
exists: true
wasRecentlyCreated: false
#escapeWhenCastingToString: false
#attributes: array:8 [▼
"id" => 1
"title" => "Dedrick Ebert DDS"
"excerpt" => "Possimus sit animi enim error. Omnis maxime ducimus nesciunt omnis quibusdam."
"body" => "Neque est aliquid est placeat. Eaque nihil nobis nobis nostrum consequuntur. Omnis quis aut ipsum quo. Facilis velit ducimus quisquam consequatur vitae quidem. ?"
"published_at" => "2003-10-06"
"category_id" => 7
"created_at" => "2021-12-07 20:30:15"
"updated_at" => "2021-12-07 20:30:15"
]
#original: array:8 [?]
#changes: []
#casts: []
#classCastCache: []
#dates: []
#dateFormat: null
#appends: []
#dispatchesEvents: []
#observables: []
#relations: []
#touches: []
timestamps: true
#hidden: []
#visible: []
}
有人可以解釋我在這里缺少什么嗎?
謝謝你的指點
uj5u.com熱心網友回復:
你想得到什么結果?
的第一個元素$posts是第一篇文章的物件,您不需要再次定義這些屬性。你可以使用
$post->id
洗掉所有定義的屬性。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/379630.html
