所以我試圖按照本教程讓我的用戶能夠上傳個人資料圖片。
但是在 HomeController 中,在最終的“更新”中給了我“未定義的方法”。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Database\Eloquent\Model;
use App\Models\Flight;
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return view('home');
}
public function upload(Request $request)
{
if($request->hasFile('image')){
$filename = $request->image->getClientOriginalName();
$request->image->storeAs('images',$filename,'public');
Auth()->user()->update(['image'=>$filename]);
}
return redirect()->back();
}
}
我已經嘗試在上面“使用”Eloquent,認為這是它的更新方法,但它仍然不起作用。
有什么我需要先打電話才能讓它作業的嗎?
錯誤列印螢屏
uj5u.com熱心網友回復:
auth()->user() 回傳一個 auth facade instanc 但是當你需要更新資料時你需要一個 Model 實體所以
$userData = user::find(auth()->user()->id);
$userData->image = $filename;
$userData.save()
uj5u.com熱心網友回復:
將此添加到 routes/web.php 檔案中...
使用 App\Http\Controllers\HomeController;
uj5u.com熱心網友回復:
正如用戶@raghav 所說,使用 Auth->user() 會為您提供一個 auth 用戶實體,而您希望使用 Auth id 從集合中查找用戶,例如:
$userData = User::find(auth()->id);
$userData->image = $filename;
$userData->save();
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/322249.html
