簡體   English   中英

如何解決這個試圖獲取Laravel中非對象錯誤的屬性

[英]How To Solve This Trying to get property of non-object Error In Laravel

我正在創建一個網站。 我已經創建了一個注冊頁面。 我想更新我的詳細信息。

但是,它給了我這個錯誤,我還上傳了下面的錯誤圖片。 - 錯誤圖片

ErrorException(E_ERROR)試圖獲取非對象的屬性(視圖:D:\\ wamp64 \\ www \\ FinalProject \\ resources \\ views \\ AdminUpdate.blade.php)

我用dd($ edd); 它給了我正確的細節。 但是,當我嘗試下面的代碼時,它給了我上面的錯誤。

我怎樣才能解決這個問題 ??

這是我的AdminPanel.blade.php

<table class="table table-bordered">

<tr>
<td> Name </td>
</tr>


@foreach($data as $value )
<tr>
<td> {{ $value->username }} </td>
<td> <a href="edit/{{ $value->id }}"><input type="submit" name="update" value="Update" class="btn-primary"></a> </td>
</tr>
@endforeach
</table>

這是我的AdminPanelController.php

public function edit($id)
{
$edd = User::find($id);
//dd($edd);
      return view('AdminUpdate', ['edd' => $edd]);

}

    public function adminedit($id, Request $request, User $user)
{
    // Add Validation

    $users = $user->find($id);
    $users->username = $request->get('username');
    $users->email = $request->get('email');
    $users->save();

    return redirect()->back();
}

這是我的AdminUpdate.blade.php

<form action="edit/{{ $edd[0]->id }}" method="post" enctype="multipart/form-data">

    {{ method_field('PUT') }}
    {{ csrf_field() }}

  <div class="form-group">
    <label>Username : *</label>
    <input type="text" class="form-control" name="username" value="{{$edd[0]->username}}" placeholder="Enter Your Username" required>
  </div>

    <div class="form-group">
    <label>Email : *</label>
    <input type="email" class="form-control" name="email" value="{{$edd[0]->email}}" placeholder="Enter Your Username" required>
  </div>

  <div class="form-group">
    <label>Password : *</label>
    <input type="password" class="form-control" name="password" value="{{$edd[0]->password}}" placeholder="Enter Your Password" required>
  </div>

  <div class="form-group">
    <label>Upload Profile Picture :</label>
    <input type="file" class="form-control-file" name="file_img" aria-describedby="fileHelp">
    <small id="fileHelp" class="form-text text-muted">If U Want , U Can Skip Upload A Profile Picture</small>
  </div>

  <input type="submit" class="btn btn-primary" value="Update User">
                    </form>

這是我的路線。

Route::get('/edit/{id}', 'AdminPanelController@edit');

Route::post('/edit/{id}', 'AdminPanelController@adminedit');

User::find()給您一個對象 ,而不是數組。

因此,只需在刀片中使用

$edd->id

同樣適用於$edd其他實例:用戶名,電子郵件,密碼。

作為旁注:您可以添加檢查,是否通過id確實找到了用戶,如果沒有,則顯示-例如顯示404頁面。

您不應該寫{{ $edd[0]->id }}來代替這種用法:

{{ $edd->id }}

將{$ edd [0]-> id}}行更改為

{{$ edd-> id}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM