2017-04-19 45 views
1

我想將圖像路徑存儲在數據庫中。 vendor\laravel\framework\src\Illuminate\Foundation\Auth\RegistersUsers.php下我的控制器代碼如下:從空值enter image description here創建默認對象:laravel-5.4 - 錯誤:從空值創建默認對象

public function register(Request $request) 
{ 
    $this->validator($request->all())->validate(); 

    if($request->hasFile('image')) { 
    $image_name = $request->file('image')->getClientOriginalName();    
    $image_path = $request->file('image')->store('public'); 
    $user->image = Storage::url($image_name); 
    $user->save(); 
    } 

    event(new Registered($user = $this->create($request->all()))); 

    // $this->guard()->login($user); disable autologin for new users 

    return $this->registered($request, $user) 
        ?: redirect($this->redirectPath()); 
} 

我收到以下錯誤:ErrorException在RegistersUsers.php線40。

圖像正在保存在公用文件夾中,但無法保存用戶表數據庫中的圖像路徑。用戶表的模式,
Schema::create('users', function (Blueprint $table) { $table->increments('user_id'); $table->string('name'); $table->string('image'); $table->rememberToken(); $table->timestamps();

如何繼續在user表中的圖像路徑存儲在數據庫

+0

你如何實現你的'create'方法? – hassan

回答

0

你沒有初始化變量$user所以在控制器和之前使用它,你已經添加$user = new User;假設您已經有use App\User;

$user = new \App\User;如果您沒有。

更新 如果你想更新你已經選擇基於它來初始化變量$user現有用戶記錄的,應在請求被髮送,然後做這樣的初始化主鍵:

$user_id = $request->input('user_id'); 
$user = User::find($user_id); 
+0

他將它用作laravel用戶對象,以便他可以輕鬆使用'$ user-> save();' –

+0

我已經'使用App \ User'; n代碼。我不必執行'$ user = new User;'n代碼,因爲這個公共函數register->處理應用程序的註冊請求。意味着我已經獲得用戶名和圖像註冊並進行驗證。'$ this-> validator($ request-> all()) - > validate();'。如果我做$ user = new User,那麼我將爲用戶插入新值。在數據庫中,我有一個圖像的條目,現在是「C:\ xampp \ tmp \ php469E.tmp」。我的需要是更新公用文件夾路徑的tmp路徑。 – dynamic

+0

'register'函數的作用域內沒有變量'$ user',所以沒有定義。正試圖更新用戶記錄? –

相關問題