[Laravel5.8]Controller상에서 데이터 취득 후, 새롭게 프로퍼티를 추가한다
4444 단어 PHP7laravel5.8라라벨
컨트롤러에 속성 추가
컨트롤러에서 데이터베이스에서 가져온 데이터에 새 속성을 추가할 수 있다는 것을 알았습니다.$object->新しいプロパティ名=〇〇
에서 새로운 속성을 추가할 수 있습니다.
덧붙여 그 자리만의 것으로, 이것만으로는 프로퍼티를 보존하거나, 테이블의 컬럼을 재기록하거나 할 수 없는 것 같습니다.
전제
코드
다음은 앱의 controller의 일부를 발췌한 것입니다.
목록을 표시하는 게시물 데이터를 가져오고 게시물에 대해 좋아하는 버튼을 누르면 속성을 추가합니다.
PostController.php public function index()
{
$posts = Post::with('likes')->latest()->paginate(20);
$user_id = Auth::id();
if($user_id){
foreach($posts as $post){
foreach($post->likes as $like){
if($like->user_id===$user_id){
//新しく追加するプロパティ
$post->liked_id = $like->id;
}
}
}
}
return view('index')->with('posts',$posts);
}
dd($post)에서 $post의 속성을 확인하면 속성이 추가되었음을 알 수 있습니다.
속성 추가 전
attributes: array:5 [▼
"id" => 18
"created_at" => "2005-11-09 09:04:07"
"updated_at" => "1999-11-01 17:05:26"
"body" => "Libero nihil eum nam suscipit."
"user_id" => 4
]
속성 추가 후
attributes: array:6 [▼
"id" => 18
"created_at" => "2005-11-09 09:04:07"
"updated_at" => "1999-11-01 17:05:26"
"body" => "Libero nihil eum nam suscipit."
"user_id" => 4
"liked_id" => 6
새로운 프로퍼티은 기존의 프로퍼티와 같이, $post->propaty
로 사용할 수가 있습니다.
앱은 $post->liked_id가 존재하는지 여부로 화면의 표시를 바꾸거나 링크를 전환하는 데 사용하고 있습니다.
이제 내가 게시물에 좋아요를 눌렀을 때 표시를 변경하는 기능을 구현할 수있었습니다.
또한 EagerLoad와 결합하여 쿼리를 줄이거나 사용자의 속성에 맞게 동적으로 속성을 추가, 변경할 수 있다고 생각합니다. 조금 편리 할 수 있습니다.
참고
【Laravel】EagerLoad 정리. 동적 속성과 Eloquent 관계의 차이 등
Laravel 5.7에서 기본 CRUD 만들기
(여기를 참고로 앱을 만들어 주셨습니다. 감사합니다)
Reference
이 문제에 관하여([Laravel5.8]Controller상에서 데이터 취득 후, 새롭게 프로퍼티를 추가한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/siophp/items/48d18b5b03397930ca3a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
public function index()
{
$posts = Post::with('likes')->latest()->paginate(20);
$user_id = Auth::id();
if($user_id){
foreach($posts as $post){
foreach($post->likes as $like){
if($like->user_id===$user_id){
//新しく追加するプロパティ
$post->liked_id = $like->id;
}
}
}
}
return view('index')->with('posts',$posts);
}
attributes: array:5 [▼
"id" => 18
"created_at" => "2005-11-09 09:04:07"
"updated_at" => "1999-11-01 17:05:26"
"body" => "Libero nihil eum nam suscipit."
"user_id" => 4
]
attributes: array:6 [▼
"id" => 18
"created_at" => "2005-11-09 09:04:07"
"updated_at" => "1999-11-01 17:05:26"
"body" => "Libero nihil eum nam suscipit."
"user_id" => 4
"liked_id" => 6
【Laravel】EagerLoad 정리. 동적 속성과 Eloquent 관계의 차이 등
Laravel 5.7에서 기본 CRUD 만들기
(여기를 참고로 앱을 만들어 주셨습니다. 감사합니다)
Reference
이 문제에 관하여([Laravel5.8]Controller상에서 데이터 취득 후, 새롭게 프로퍼티를 추가한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/siophp/items/48d18b5b03397930ca3a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)