[英]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.