簡體   English   中英

將照片的路徑存儲在laravel中的db中

[英]store path of photo in db in laravel

我試圖將徽標添加到用戶個人資料中,並且通過兩個模型(承包商和徽標)和一對一的關系來完成此操作。

我正在將徽標正確上傳到上載/徽標,但是我無法在徽標表中存儲任何內容。

我注意到我肯定會忽略任何建議:

我的用戶控制器:ContractorController.php *注意:我在視圖中使用dropzone.js

public function logo_upload($id){

  $input = Input::all();
  $rules = array(
      'file' => 'image|max:3000',
  );

  $validation = Validator::make($input, $rules);

  if ($validation->fails())
  {
    return Response::make($validation->errors->first(), 400);
  }
    $file = Input::file('file');
    $destinationPath = 'uploads/logos';
    //$filename = $file->getClientOriginalName();
    $extension =$file->getClientOriginalExtension(); 
    $filename = str_random(12).".{$extension}";
    $upload_success = Input::file('file')->move($destinationPath, $filename);
    $path = Input::file('file')->getRealPath();

    if( $upload_success ) {
       return Response::json('success', 200);
    } else {
       return Response::json('error', 400);
    }

    if( $upload_success ) {
         $contractor = Contractor::find($id);
        $contractor->logo->name = Input::file('file')->getRealPath();
        $contractor->logo->contractor_id = $contractor;
        $contractor->save();
    }
}

我的設計者模型:

 function logo() {
    return $this->hasOne('Logo', 'contractror_id');
}

我的徽標模型:

public function contractor() {
    return $this->belongsTo('Contractor', 'contractor_id');
}

您只需交換以下代碼:

if( $upload_success ) {
   return Response::json('success', 200);
} else {
   return Response::json('error', 400);
}

// This code is out of reach if return occurs
if( $upload_success ) {
    $contractor = Contractor::find($id);
    $contractor->logo->name = Input::file('file')->getRealPath();
    $contractor->logo->contractor_id = $contractor;
    $contractor->save();
}

如下所示:

if( $upload_success ) {
    $contractor = Contractor::find($id);
    $logo = new Logo(array('name' => Input::file('file')->getRealPath()));
    $contractor->logo()->save($logo);
    return Response::json('success', 200);
} else {
   return Response::json('error', 400);
}

它沒有到達用於在數據庫中保存path的代碼,因為在此之前您是從腳本返回的,因此return后的代碼不會得到執行。 順便說一句,我只是從您的問題中復制了代碼,然后進行了少量修改就交換了代碼,因此不確定您保存的代碼是否有效。

更新:更新了代碼以保存相關模型。 檢查如何在文檔中保存相關模型。

在遵循Heera的說明之后,您還應該查看如何將任何內容存儲到徽標表中。 應該是這樣的:

$contractor = Contractor::find($id);
$logo = new Logo(array('name' => Input::file('file')->getRealPath()));
$contractor->logo()->save($logo);

暫無
暫無

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

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