Laravel - 用户有很多画廊 - 画廊有很多图片 -> 如何插入数据库
Laravel - user has many galleries - gallery has many images -> how to insert in DB
用户模型:
public function galleries()
{
return $this->hasMany(Gallery::class);
}
图库模型:
public function images()
{
return $this->hasMany(Image::class);
}
现在在我的图像控制器中,我想将数据写入数据库。尝试了以下代码,但它不起作用。 (我没有收到错误,因为它是通过 dropzone 调用的...我在 dropzone 中看到的只是一个 X 和一个写有 [object Object]
的气泡
auth()->user()->galleries()->images()->create([
'gallery_id' => $gallery->id,
'filename' => $fileName,
'filesize' => $filesize,
'delete' => false,
]);
如何解决?
编辑:来自日志
如果我删除上面的行,错误就会消失..
[2020-03-27 22:52:36] local.ERROR: Unable to find file (). {"userId":1,"exception":"[object] (Intervention\Image\Exception\NotReadableException(code: 0): Unable to find file (). at C:\xampp\htdocs\galshare\vendor\intervention\image\src\Intervention\Image\Gd\Decoder.php:20)
[stacktrace]
#0 C:\xampp\htdocs\galshare\vendor\intervention\image\src\Intervention\Image\AbstractDecoder.php(324): Intervention\Image\Gd\Decoder->initFromPath(false)
#1 C:\xampp\htdocs\galshare\vendor\intervention\image\src\Intervention\Image\AbstractDriver.php(66): Intervention\Image\AbstractDecoder->init(Object(Illuminate\Http\UploadedFile))
#2 C:\xampp\htdocs\galshare\vendor\intervention\image\src\Intervention\Image\ImageManager.php(54): Intervention\Image\AbstractDriver->init(Object(Illuminate\Http\UploadedFile))
#3 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php(261): Intervention\Image\ImageManager->make(Object(Illuminate\Http\UploadedFile))
#4 C:\xampp\htdocs\galshare\app\Http\Controllers\ImagesController.php(68): Illuminate\Support\Facades\Facade::__callStatic('make', Array)
#5 [internal function]: App\Http\Controllers\ImagesController->dropzoneStore(Object(Illuminate\Http\Request), Object(App\Gallery))
#6 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Routing\Controller.php(54): call_user_func_array(Array, Array)
#7 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Routing\ControllerDispatcher.php(45): Illuminate\Routing\Controller->callAction('dropzoneStore', Array)
#8 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Routing\Route.php(225): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(App\Http\Controllers\ImagesController), 'dropzoneStore')
#9 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Routing\Route.php(182): Illuminate\Routing\Route->runController()
#10 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Routing\Router.php(681): Illuminate\Routing\Route->run()
#11 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(128): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#12 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Routing\Middleware\SubstituteBindings.php(41): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#13 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
#14 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken.php(76): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#15 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#16 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\View\Middleware\ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#17 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\View\Middleware\ShareErrorsFromSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#18 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Session\Middleware\StartSession.php(56): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#19 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#20 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#21 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
#22 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Cookie\Middleware\EncryptCookies.php(66): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#23 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Illuminate\Http\Request), Object(Closure))
#24 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#25 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Routing\Router.php(683): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#26 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Routing\Router.php(658): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#27 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Routing\Router.php(624): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#28 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Routing\Router.php(613): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#29 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(165): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#30 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(128): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#31 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#32 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#33 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#34 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#35 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#36 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
#37 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode.php(63): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#38 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#39 C:\xampp\htdocs\galshare\vendor\fruitcake\laravel-cors\src\HandleCors.php(36): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#40 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Fruitcake\Cors\HandleCors->handle(Object(Illuminate\Http\Request), Object(Closure))
#41 C:\xampp\htdocs\galshare\vendor\fideloper\proxy\src\TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#42 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Fideloper\Proxy\TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure))
#43 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#44 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(140): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#45 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(109): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#46 C:\xampp\htdocs\galshare\public\index.php(55): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#47 C:\xampp\htdocs\galshare\server.php(21): require_once('C:\\xampp\\htdocs...')
#48 {main}
"}
推荐: 你有 $gallery_id
所以这可以工作:
//get gallery object
$gallery = auth()->user()->galleries()->findOrFail($gallery->id);
//build image object
$image = new Image;
$image->filename = $fileName;
$image->filesize = $filesize;
$image->delete = false;
//assosiate image to it's gallery
$gallery->images()->save($image);
简单方法:用gallery_id正常插入图片(这个方法不太好,因为你不知道this_gallery_id
是不是this_authenticated_user
):
$image=Image::create([
'gallery_id' => $gallery->id,
'filename' => $fileName,
'filesize' => $filesize,
'delete' => false,
]);
别忘了 use App/Image;
在 class 的顶部。
您的代码不起作用,因为当您获得 user()->galleries()
时,您会在一个对象中获得该用户的所有画廊,但您需要一个画廊与新图像相关联,
用户模型:
public function galleries()
{
return $this->hasMany(Gallery::class);
}
图库模型:
public function images()
{
return $this->hasMany(Image::class);
}
现在在我的图像控制器中,我想将数据写入数据库。尝试了以下代码,但它不起作用。 (我没有收到错误,因为它是通过 dropzone 调用的...我在 dropzone 中看到的只是一个 X 和一个写有 [object Object]
的气泡 auth()->user()->galleries()->images()->create([
'gallery_id' => $gallery->id,
'filename' => $fileName,
'filesize' => $filesize,
'delete' => false,
]);
如何解决?
编辑:来自日志
如果我删除上面的行,错误就会消失..
[2020-03-27 22:52:36] local.ERROR: Unable to find file (). {"userId":1,"exception":"[object] (Intervention\Image\Exception\NotReadableException(code: 0): Unable to find file (). at C:\xampp\htdocs\galshare\vendor\intervention\image\src\Intervention\Image\Gd\Decoder.php:20)
[stacktrace]
#0 C:\xampp\htdocs\galshare\vendor\intervention\image\src\Intervention\Image\AbstractDecoder.php(324): Intervention\Image\Gd\Decoder->initFromPath(false)
#1 C:\xampp\htdocs\galshare\vendor\intervention\image\src\Intervention\Image\AbstractDriver.php(66): Intervention\Image\AbstractDecoder->init(Object(Illuminate\Http\UploadedFile))
#2 C:\xampp\htdocs\galshare\vendor\intervention\image\src\Intervention\Image\ImageManager.php(54): Intervention\Image\AbstractDriver->init(Object(Illuminate\Http\UploadedFile))
#3 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php(261): Intervention\Image\ImageManager->make(Object(Illuminate\Http\UploadedFile))
#4 C:\xampp\htdocs\galshare\app\Http\Controllers\ImagesController.php(68): Illuminate\Support\Facades\Facade::__callStatic('make', Array)
#5 [internal function]: App\Http\Controllers\ImagesController->dropzoneStore(Object(Illuminate\Http\Request), Object(App\Gallery))
#6 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Routing\Controller.php(54): call_user_func_array(Array, Array)
#7 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Routing\ControllerDispatcher.php(45): Illuminate\Routing\Controller->callAction('dropzoneStore', Array)
#8 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Routing\Route.php(225): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(App\Http\Controllers\ImagesController), 'dropzoneStore')
#9 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Routing\Route.php(182): Illuminate\Routing\Route->runController()
#10 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Routing\Router.php(681): Illuminate\Routing\Route->run()
#11 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(128): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#12 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Routing\Middleware\SubstituteBindings.php(41): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#13 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
#14 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken.php(76): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#15 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#16 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\View\Middleware\ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#17 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\View\Middleware\ShareErrorsFromSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#18 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Session\Middleware\StartSession.php(56): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#19 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#20 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#21 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
#22 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Cookie\Middleware\EncryptCookies.php(66): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#23 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Illuminate\Http\Request), Object(Closure))
#24 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#25 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Routing\Router.php(683): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#26 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Routing\Router.php(658): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#27 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Routing\Router.php(624): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#28 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Routing\Router.php(613): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#29 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(165): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#30 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(128): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#31 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#32 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#33 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#34 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#35 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#36 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
#37 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode.php(63): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#38 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#39 C:\xampp\htdocs\galshare\vendor\fruitcake\laravel-cors\src\HandleCors.php(36): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#40 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Fruitcake\Cors\HandleCors->handle(Object(Illuminate\Http\Request), Object(Closure))
#41 C:\xampp\htdocs\galshare\vendor\fideloper\proxy\src\TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#42 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Fideloper\Proxy\TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure))
#43 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#44 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(140): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#45 C:\xampp\htdocs\galshare\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(109): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#46 C:\xampp\htdocs\galshare\public\index.php(55): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#47 C:\xampp\htdocs\galshare\server.php(21): require_once('C:\\xampp\\htdocs...')
#48 {main}
"}
推荐: 你有 $gallery_id
所以这可以工作:
//get gallery object
$gallery = auth()->user()->galleries()->findOrFail($gallery->id);
//build image object
$image = new Image;
$image->filename = $fileName;
$image->filesize = $filesize;
$image->delete = false;
//assosiate image to it's gallery
$gallery->images()->save($image);
简单方法:用gallery_id正常插入图片(这个方法不太好,因为你不知道this_gallery_id
是不是this_authenticated_user
):
$image=Image::create([
'gallery_id' => $gallery->id,
'filename' => $fileName,
'filesize' => $filesize,
'delete' => false,
]);
别忘了 use App/Image;
在 class 的顶部。
您的代码不起作用,因为当您获得 user()->galleries()
时,您会在一个对象中获得该用户的所有画廊,但您需要一个画廊与新图像相关联,