亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Laravel 中打印行數

在 Laravel 中打印行數

PHP
慕的地6264312 2023-04-21 15:24:31
我正在嘗試從 MySQL 打印 Laravel 中的行數,但出現此錯誤: htmlspecialchars() expects parameter 1 to be string, object given (View: C:\wamp64\www\kont\resources\views\profile.blade. PHP)我的模型中有兩個函數。第一個函數從一個表返回有關用戶的信息,另一個函數從另一個表計算該用戶的朋友數。請在下面查看我的代碼:家庭控制器.phppublic function profile(Request $request,$id){        $model = new UserModel(); $podaciIzBaze = $model->userdata($id); $data = array(); $data['dt'] = $podaciIzBaze;$model2 = new UserModel(); $podaciIzBaze2 = $model2->countfriends($id); $data['dt2'] = $podaciIzBaze2;         return view('profile',$data);    }用戶模型.php  class UserModel extends Model    {        //        public function userdata($id){            $query = DB::select("SELECT first_name,last_name,email,website,birth_date FROM users where id = $id");            return $query;        }        public function countfriends($id){            $query=DB::SELECT("SELECT count(user_id) from user_friend where user_id = $id");            return $query;        }配置文件.blade.php @foreach($dt as $d)                                 <tr>                                    <td>Ime:</td>                                    <td>{{ $d->first_name }}</td>                                 </tr>                                 <tr>                                    <td>Prezime</td>                                    <td>{{ $d->last_name }}</td>                                 </tr>                                 <tr>                                    <td>Datum Rodjenja</td>                                    <td>{{ $d->birth_date }}</td>                                 </tr>                                 <tr>                                 <tr>                                    <td>Pol</td>                                    <td>Musko</td>                                 </tr>                                 <tr>
查看完整描述

3 回答

?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

在第二行


@foreach($dt2 as $d2)

    Number of friends: {{ $d }}  // Here it should be $d2

@endforeach

它應該是 $d2 而不是 $d。


編輯 1


問題出在你的第二個函數 countfriends($id) 上。使用以下代碼


$query=\DB::select("SELECT count(user_id) as friends from user_friend where user_id = $id");

然后在視圖文件中使用:


@foreach($dt2 as $d2)

    Number of friends: {{ $d2->friends }}

@endforeach

當您使用選擇查詢時,它返回的鍵“count(user_id)”不能與標準對象一起使用以進行打印。


但是您應該開始使用 Eloquent 進行查詢,而不是手動編寫 SQL 查詢。


查看完整回答
反對 回復 2023-04-21
?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

DB::select 返回一個結果數組。你應該使用

$data['dt'] = $podaciIzBaze[0];

但是,更優雅的方法如下:

$data['dt'] = UserModel::find($id);

find 方法返回模型的第一行,其中主鍵等于 $id


查看完整回答
反對 回復 2023-04-21
?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

Number of friends: {{ $d }}應該Number of friends: {{ $d2 }}

我建議對您的代碼進行以下更改:

  1. UserModel重命名為User

  2. 添加Friend模型

  3. User在模型和Friend模型之間添加一對多的雄辯關系

  4. 將表名重命名user_frienduser_friends- 這樣你就可以利用 laravel 的魔力

  5. dt并且dt2沒有描述性 - 我不知道它們代表什么,我建議將它們重命名為: dt-> userData dt2->totalFriends

public function profile(User $user){

    $userData = $user->only([

        'first_name',

        'last_name',

        'email',

        'website',

        'birth_date',

    ]);


    return view('profile', [

        'userData' => $userData,

        'totalFriends' => $user->friends->count(),

    ]);


}

刀片文件看起來類似于:


 <tr>

    <td>Ime:</td>

    <td>{{ $userData->first_name }}</td>

 </tr>

 <tr>

    <td>Prezime</td>

    <td>{{ $userData->last_name }}</td>

 </tr>

 <tr>

    <td>Datum Rodjenja</td>

    <td>{{ $userData->birth_date }}</td>

 </tr>

 <tr>

 <tr>

    <td>Pol</td>

    <td>Musko</td>

 </tr>

 <tr>

    <td>Email</td>

    <td><a href="mailto:[email protected]">{{ $userData->email }}</a></td>

 </tr>

 <td>Website</td>

     <td>

       {{ $userData->website }}

     </td>

 </tr>



 Number of friends: {{ $totalFiends }}


查看完整回答
反對 回復 2023-04-21
  • 3 回答
  • 0 關注
  • 185 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號