테스트 사이트 - 개발 중인 베타 버전입니다

라라벨에서 view에서 데이터 가져오지 못하는 원인? 채택완료

다위 3년 전 조회 1,870

라라벨을 공부하고 있습니다. 

 

제가 설정한 web.php 내용입니다. 

Route::get('/admin/member','App\Http\Controllers\admin\MemberController@index')->name('admin.member-list');

controller에는 

namespace App\Http\Controllers\admin;

 

use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Storage;

use Illuminate\Support\Facades\DB;

use App\Models\admin\Member;

 

class MemberController extends Controller

{

  //처음 파일 실행  

  public function index(Request $req) {

  

$this->page = 1;

    $this->pageView = 10;


 

    $member = Member::GetMemberList($this->page, $this->pageView, $req->input('keyfield'), $req->input('keyword'));  

    return view('admin.member-list', ['member'=>$member, 'member_cnt'=>$member['cnt']]);    

 

 }

}

그리고 model에는 

//회원리스트 가져오기

  public static function GetMemberList($page, $pageView, $keyfield="", $keyword="") {

    $page = 1;

    $pageView = 10;

    $startIndex = ($page - 1) * $pageView;

 

    if(!$keyfield && !$keyword) {

      $all_member = Member::select('idx','user_id', 'user_name', 'email', 'mobile', 'user_status', 'login_time', 'regdate')->get();

      //$all_member = DB::table('lms_member')->get();

      $all_member['cnt'] = Member::select('idx','user_id', 'user_name', 'email', 'mobile', 'user_status', 'login_time', 'regdate')->get()->count();

    }

    else {

      $all_member = Member::select('idx','user_id', 'user_name', 'email', 'mobile', 'user_status', 'login_time', 'regdate')->where($keyfield,'like', '%'.$keyword.'%')->take($startIndex)->get();

      $all_member['cnt'] = Member::select('idx','user_id', 'user_name', 'email', 'mobile', 'user_status', 'login_time', 'regdate')->where($keyfield,'like', '%'.$keyword.'%')->count();

    }

 

     //echo "37 app/Models/admin/Member.php all_member[cnt]=<pre>"; print_r($all_member[cnt]); echo "</pre>";

 

    return $all_member;

  }

 

view에는 

<table>

<tr>

  <td>idx</td>

  <td>아이디</td>

  <td>성명</td>

  <td>이메일</td>

  <td>핸드폰 번호</td>

  <td>주소</td>

</tr>

 

@foreach ($member as $mb)

{{ $mb }}

  {{-- <tr>

    <td>{{ $mb->idx }}</td>  

    <td>{{ $mb->user_id }}</td>

    <td>{{ $mb->user_name }}</td>

    <td>{{ $mb->email }}</td>

    <td>{{ $mb->mobile }}</td>

    <td>{{ $mb->addr }} {{ $mb->addr2 }}</td>

  </tr> --}}

@endforeach

</table>

 

이렇게 작성하고 

$mb를 출력하면 

{"idx":770,"user_id":"test5","user_name":"\uc774\uc0c1\ucca0","email":"test@test.com","mobile":"010-1234-1234","user_status":"1","login_time":"0000-00-00 00:00:00","regdate":"2019-05-02 10:40:36"} {"idx":773,"user_id":"test1","user_name":"\uc774\uc0c1\ucca0","email":"jesu237@naver.com","mobile":"010-1234-1234","user_status":"1","login_time":"0000-00-00 00:00:00","regdate":"2022-07-10 17:37:03"} {"idx":774,"user_id":"test11","user_name":"\uc774\uc0c1\ucca0","email":"jesu237@naver.com","mobile":"010-0000-0000","user_status":"1","login_time":"0000-00-00 00:00:00","regdate":"2022-07-10 17:37:03"} {"idx":775,"user_id":"test111","user_name":"\uc774\uc0c1\ucca0","email":"jesu237@naver.com","mobile":"010-0000-0001","user_status":"1","login_time":"0000-00-00 00:00:00","regdate":"2022-07-10 17:37:03"} {"idx":776,"user_id":"test115","user_name":"\uc774\uc0c1\ucca0","email":"jesu237@naver.com","mobile":"010-0000-0002","user_status":"1","login_time":"0000-00-00 00:00:00","regdate":"2022-07-10 17:37:03"} 5

 

이렇게 db의 데이터를 가져오는데 

{{ $mb->idx }}

이렇게 하면 Attempt to read property "idx" on int 라는 오류메시지가 나옵니다. 

 

어디를 수정해야 할까요?

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트

    <td>{{ $mb->idx }}</td>    <== 이 줄을 삭제하면 어떤 에러가 나오나 한번 해 보세요.

    <td>{{ $mb->user_id }}</td>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

3년 전

형변환 문제가 아닌 것 같습니다. 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

형변환 문제인것 같은데

한번 idx를 string으로 변환해보셔요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인