Laravel Eloquent 관련 함수 이름
P粉729198207
2023-07-23 17:45:15
<p>"게시물"과 "카테고리"라는 두 개의 테이블이 있습니다. "게시물"과 "카테고리" 사이의 관계는 다대일입니다. 따라서 "Post" 클래스 모델의 코드는 다음과 같습니다. </p>
<pre class="brush:php;toolbar:false;"><?php
네임스페이스 AppModel;
IlluminateDatabaseEloquentFactoriesHasFactory를 사용하세요.
IlluminateDatabaseEloquentModel을 사용하세요.
클래스 Post 확장 모델
{
HasFactory를 사용하세요.
보호된 $guarded = ['id'];
공용 함수 카테고리()
{
return $this->belongsTo(Category::class);
}
}</pre>
<p>이 코드를 사용하면 애플리케이션이 성공적으로 실행됩니다. </p><p>문제는 카테고리 기능 이름을 "카테고리"로 변경하려고 할 때 다음과 같이 게시물의 카테고리 이름에 액세스하려고 할 때입니다. </p><p>
<code>Post::first()->categories->name</code>, laravel에서는 다음과 같은 오류가 발생합니다. <code>D:BelajarProgramCODINGANLaraveapplicationcoba-laraveleval()의 null에서 "name" 속성을 읽으려고 시도합니다() 코드입니다.</code></p>
<p>(수정됨</p>
<p>Eloquent 함수 이름이 "category"인 경우 "Post::first()->category"는 게시물의 카테고리를 반환합니다. 그러나 함수 이름을 "categories"로 변경하고 "Post::first()->categories"를 사용하여 함수에 액세스하려고 하면 null이 반환됩니다. </p>
<p>)</p>
<p>카테고리 클래스 모델의 Eloquent 관련 함수 이름을 임의의 이름으로 변경하려고 시도했지만 여전히 액세스할 수 있으며 Laravel은 오류를 보고하지 않습니다. 카테고리 클래스 모델의 코드는 다음과 같습니다. </p>
<pre class="brush:php;toolbar:false;"><?php
네임스페이스 AppModel;
IlluminateDatabaseEloquentFactoriesHasFactory를 사용하세요.
IlluminateDatabaseEloquentModel을 사용하세요.
클래스 카테고리 확장 모델
{
HasFactory를 사용하세요.
보호된 $guarded = ['id'];
공개 함수 게시물(){
return $this->hasMany(Post::class);
}
}</pre>
<p>누구든지 저를 도와주실 수 있나요? 카테고리 클래스 모델에서는 Eloquent 함수 이름을 변경할 수 있지만 게시물 클래스 모델에서는 변경할 수 없는 이유는 무엇입니까? </p>
다음을 수행하면 문제가 해결됩니다.
으아아아