Laravel-Backpack/Settings

Having issue with images

Closed this issue · 2 comments

Bug report

What I did:

Created the following setting in the seeder:

    [
        'key'         => 'site_background_image',
        'name'        => 'Background Image',
        'description' => 'The background image of the site',
        'value'       => '',
        'field'       => '{"name":"background_image","label":"Background Image","type":"image","crop":true,"aspect_ratio":0,"withFiles":true,"hint":"The background image of the site"}',
        'active'      => 1,
    ],

What I expected to happen:

Select an image to display as the background image

What happened:

After I selected the image in the admin panel, I received an error
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'background_image' in 'field list'
Stack trace here: https://flareapp.io/share/v5pbyQMP

What I've already tried to fix it:

I have no idea what I'm doing

Backpack, Laravel, PHP, DB version:

Backpack 6.6
Laravel 10.10
PHP 8.3.3
MySql 8.0.36

Hello there! Thanks for opening your first issue on this repo!

Just a heads-up: Here at Backpack we use Github Issues only for tracking bugs. Talk about new features is also acceptable. This helps a lot in keeping our focus on improving Backpack. If you issue is not a bug/feature, please help us out by closing the issue yourself and posting in the appropriate medium (see below). If you're not sure where it fits, it's ok, a community member will probably reply to help you with that.

Backpack communication mediums:

  • Bug Reports, Feature Requests - Github Issues (here);
  • Quick help (How do I do X) - Gitter Chatroom;
  • Long questions (I have done X and Y and it won't do Z wtf) - Stackoverflow, using the backpack-for-laravel tag;

Please keep in mind Backpack offers no official / paid support. Whatever help you receive here, on Gitter, Slack or Stackoverflow is thanks to our awesome awesome community members, who give up some of their time to help their peers. If you want to join our community, just start pitching in. We take pride in being a welcoming bunch.

Thank you!

--
Justin Case
The Backpack Robot

Hey @joshwegener

Settings CRUD stores the values only in value field.
Try the following. It works for my website:

{
 "name": "value",
 "label": "Value",
 "type": "image",
 "crop": true,
 "hint": "Best Fit: 1920x400",
 "aspect_ratio": 4.8,
 "withFiles": 
 {
 "disk": "public",
 "path": "destination"
 }
}

You can use following MySQL snippet to insert the key:

INSERT INTO `settings` (`id`, `key`, `name`, `description`, `value`, `field`, `active`, `created_at`, `updated_at`) VALUES (NULL, 'default_header', 'default_header', 'default_header', 'destination/UZvfwE1d3SAa4kzjvdXGKtKxmAC1fXnifJSN19ME.jpeg', '{\r\n \"name\": \"value\",\r\n \"label\": \"Value\",\r\n \"type\": \"image\",\r\n \"crop\": true,\r\n \"hint\": \"Best Fit: 1920x400\",\r\n \"aspect_ratio\": 4.8,\r\n \"withFiles\": \r\n {\r\n \"disk\": \"public\",\r\n \"path\": \"destination\"\r\n }\r\n \r\n}', '1', NULL, '2024-03-19 08:40:01')

Get the value like this:

Setting::get('default_header')