Получить изображение как URL из базы данных mysql в laravel API - PullRequest
0 голосов
/ 04 марта 2020

Я хочу получить изображение из базы данных в виде URL-адреса, например http://127.0.0.1: 8000 / uploads / category / image.png , но в результате я получаю имя файла, а не URL-адрес.

Это класс модели:

    class CategoryModel extends Model
       {
       protected $table="tb_category";
       public $timestamps = false;

       protected $fillable = [
       'id',
       'name',
       'image'
       ];
       }

Это мой класс контроллера:

    class CategoryController extends Controller
    {
    //
    public function viewPage(){
        return view('category');
    }

    public function saveCategory(Request $request){
        $category = new CategoryModel();
        $category->name=$request->input('name');

        if($request->hasfile('image')){
            $file=$request->file('image');
            $extension = $file->getClientOriginalExtension();
            $filename=time().'.'.$extension;
            //$headers = array('Content-Type' => 'application/octet-stream');
            $file->move('uploads/category/',$filename);
            $category->image =$filename;
            $category->_image =$filename;



         }
         else{
            return $request;
            $category->image='';
            $category->_image=null;
         }

            $category->save();
            return view('category')->with('category',$category);

        }


        public function getCategories(){
        $res = CategoryModel::get(
            ['id','name','image'
         ]
         );   
         return response()->json($res,200);
         }
         }

1 Ответ

0 голосов
/ 04 марта 2020

В вашем методе saveCategory вы сохраняете $filename в столбце 'image'. Измените его на путь хранения.

public function saveCategory(Request $request){
$category = new CategoryModel();
$category->name=$request->input('name');

if($request->hasfile('image')){
    $file=$request->file('image');
    $extension = $file->getClientOriginalExtension();
    $filename=time().'.'.$extension;
    $file->move('uploads/category/',$filename);
    $category->image ='http://127.0.0.1:8000/uploads/category/'.$filename; //This is where you need to save absolute path of the image.
 }
 else{
    return $request;

 }

    $category->save();
    return view('category')->with('category',$category);

}

Еще одна проблема заключается в том, что вы написали код после оператора return $request; в else. Любой код, написанный после return, недоступен для переводчика и не будет выполнен.

...