Laravel-用户有许多图库-图库有许多图像->;如何在数据库中插入

Laravel-用户有许多图库-图库有许多图像->;如何在数据库中插入,laravel,insert,has-many,Laravel,Insert,Has Many,用户模型: public function galleries() { return $this->hasMany(Gallery::class); } 画廊模型: public function images() { return $this->hasMany(Image::class); } 现在,在我的图像控制器中,我想将数据写入数据库。。尝试了以下代码,但不起作用。(我也没有收到错误,因为它是通过dropzone调用的……我在dropzone内看到的只是一

用户模型:

public function galleries()
{
    return $this->hasMany(Gallery::class);
}
画廊模型:

public function images()
{
    return $this->hasMany(Image::class);
}
现在,在我的图像控制器中,我想将数据写入数据库。。尝试了以下代码,但不起作用。(我也没有收到错误,因为它是通过dropzone调用的……我在dropzone内看到的只是一个X和一个写有[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\u 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\u id正常插入图像(此方法不太好,因为您不知道
此\u gallery\u id
是否用于
此经过身份验证的用户
):

别忘了
在课堂上使用App/Image;


您的代码不起作用,因为当您获得
user()->galleries()
时,您将在一个对象中获得该用户的所有库,但您需要一个库来与新图像关联,

存储/logs/laravel.log
中是否有任何错误?
[object object]
在对象被转换为字符串时显示。谢谢!用日志更新了帖子。请在
dropzoneStore
方法中显示代码。请务必指出要在哪个图库图像上创建。因为图库有
多个
,所以您需要找到一个示例。
auth()->user()->galleries()->find(2)
谢谢,我将图像类重命名为Photo,因为它与使用图像的干预插件有冲突。现在,我重命名了我的所有方法,但在最后一行的中找不到
方法照片(
$gallery->photos()->save($Image);
)。我确实包含了App/Photo,还有一个名为photos的方法()在那里。用户也一样()->galleries()…找不到galleries方法..没关系..必须重新启动artisan服务…现在一切正常…谢谢!我很乐意帮忙;)
$image=Image::create([
            'gallery_id' => $gallery->id,
            'filename' => $fileName,
            'filesize' => $filesize,
            'delete' => false,
        ]);