Add basic livewire picker (WIP)

This commit is contained in:
Christopher C. Wells 2021-01-18 15:12:41 -08:00 committed by Christopher Charbonneau Wells
parent ba7cd55503
commit 18d15db375
9 changed files with 461 additions and 6 deletions

View File

@ -46,6 +46,7 @@ namespace PHPSTORM_META {
'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class,
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@ -151,6 +152,7 @@ namespace PHPSTORM_META {
'flare.logger' => \Monolog\Logger::class,
'hash' => \Illuminate\Hashing\HashManager::class,
'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
'livewire' => \Livewire\LivewireManager::class,
'log' => \Illuminate\Log\LogManager::class,
'mail.manager' => \Illuminate\Mail\MailManager::class,
'mailer' => \Illuminate\Mail\Mailer::class,
@ -213,6 +215,7 @@ namespace PHPSTORM_META {
'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class,
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@ -318,6 +321,7 @@ namespace PHPSTORM_META {
'flare.logger' => \Monolog\Logger::class,
'hash' => \Illuminate\Hashing\HashManager::class,
'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
'livewire' => \Livewire\LivewireManager::class,
'log' => \Illuminate\Log\LogManager::class,
'mail.manager' => \Illuminate\Mail\MailManager::class,
'mailer' => \Illuminate\Mail\Mailer::class,
@ -380,6 +384,7 @@ namespace PHPSTORM_META {
'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class,
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@ -485,6 +490,7 @@ namespace PHPSTORM_META {
'flare.logger' => \Monolog\Logger::class,
'hash' => \Illuminate\Hashing\HashManager::class,
'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
'livewire' => \Livewire\LivewireManager::class,
'log' => \Illuminate\Log\LogManager::class,
'mail.manager' => \Illuminate\Mail\MailManager::class,
'mailer' => \Illuminate\Mail\Mailer::class,
@ -547,6 +553,7 @@ namespace PHPSTORM_META {
'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class,
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@ -652,6 +659,7 @@ namespace PHPSTORM_META {
'flare.logger' => \Monolog\Logger::class,
'hash' => \Illuminate\Hashing\HashManager::class,
'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
'livewire' => \Livewire\LivewireManager::class,
'log' => \Illuminate\Log\LogManager::class,
'mail.manager' => \Illuminate\Mail\MailManager::class,
'mailer' => \Illuminate\Mail\Mailer::class,
@ -714,6 +722,7 @@ namespace PHPSTORM_META {
'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class,
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@ -819,6 +828,7 @@ namespace PHPSTORM_META {
'flare.logger' => \Monolog\Logger::class,
'hash' => \Illuminate\Hashing\HashManager::class,
'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
'livewire' => \Livewire\LivewireManager::class,
'log' => \Illuminate\Log\LogManager::class,
'mail.manager' => \Illuminate\Mail\MailManager::class,
'mailer' => \Illuminate\Mail\Mailer::class,
@ -881,6 +891,7 @@ namespace PHPSTORM_META {
'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class,
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@ -986,6 +997,7 @@ namespace PHPSTORM_META {
'flare.logger' => \Monolog\Logger::class,
'hash' => \Illuminate\Hashing\HashManager::class,
'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
'livewire' => \Livewire\LivewireManager::class,
'log' => \Illuminate\Log\LogManager::class,
'mail.manager' => \Illuminate\Mail\MailManager::class,
'mailer' => \Illuminate\Mail\Mailer::class,
@ -1048,6 +1060,7 @@ namespace PHPSTORM_META {
'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class,
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@ -1153,6 +1166,7 @@ namespace PHPSTORM_META {
'flare.logger' => \Monolog\Logger::class,
'hash' => \Illuminate\Hashing\HashManager::class,
'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
'livewire' => \Livewire\LivewireManager::class,
'log' => \Illuminate\Log\LogManager::class,
'mail.manager' => \Illuminate\Mail\MailManager::class,
'mailer' => \Illuminate\Mail\Mailer::class,
@ -1215,6 +1229,7 @@ namespace PHPSTORM_META {
'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class,
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@ -1320,6 +1335,7 @@ namespace PHPSTORM_META {
'flare.logger' => \Monolog\Logger::class,
'hash' => \Illuminate\Hashing\HashManager::class,
'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
'livewire' => \Livewire\LivewireManager::class,
'log' => \Illuminate\Log\LogManager::class,
'mail.manager' => \Illuminate\Mail\MailManager::class,
'mailer' => \Illuminate\Mail\Mailer::class,
@ -1382,6 +1398,7 @@ namespace PHPSTORM_META {
'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class,
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@ -1487,6 +1504,7 @@ namespace PHPSTORM_META {
'flare.logger' => \Monolog\Logger::class,
'hash' => \Illuminate\Hashing\HashManager::class,
'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
'livewire' => \Livewire\LivewireManager::class,
'log' => \Illuminate\Log\LogManager::class,
'mail.manager' => \Illuminate\Mail\MailManager::class,
'mailer' => \Illuminate\Mail\Mailer::class,
@ -1549,6 +1567,7 @@ namespace PHPSTORM_META {
'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class,
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@ -1654,6 +1673,7 @@ namespace PHPSTORM_META {
'flare.logger' => \Monolog\Logger::class,
'hash' => \Illuminate\Hashing\HashManager::class,
'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
'livewire' => \Livewire\LivewireManager::class,
'log' => \Illuminate\Log\LogManager::class,
'mail.manager' => \Illuminate\Mail\MailManager::class,
'mailer' => \Illuminate\Mail\Mailer::class,
@ -1716,6 +1736,7 @@ namespace PHPSTORM_META {
'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class,
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@ -1821,6 +1842,7 @@ namespace PHPSTORM_META {
'flare.logger' => \Monolog\Logger::class,
'hash' => \Illuminate\Hashing\HashManager::class,
'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
'livewire' => \Livewire\LivewireManager::class,
'log' => \Illuminate\Log\LogManager::class,
'mail.manager' => \Illuminate\Mail\MailManager::class,
'mailer' => \Illuminate\Mail\Mailer::class,

View File

@ -14767,6 +14767,188 @@
}
}
namespace Livewire {
/**
*
*
* @see \Livewire\LivewireManager
*/
class Livewire {
/**
*
*
* @static
*/
public static function component($alias, $viewClass = null)
{
/** @var \Livewire\LivewireManager $instance */
return $instance->component($alias, $viewClass);
}
/**
*
*
* @static
*/
public static function getAlias($class, $default = null)
{
/** @var \Livewire\LivewireManager $instance */
return $instance->getAlias($class, $default);
}
/**
*
*
* @static
*/
public static function getClass($alias)
{
/** @var \Livewire\LivewireManager $instance */
return $instance->getClass($alias);
}
/**
*
*
* @static
*/
public static function getInstance($component, $id)
{
/** @var \Livewire\LivewireManager $instance */
return $instance->getInstance($component, $id);
}
/**
*
*
* @static
*/
public static function mount($name, $params = [])
{
/** @var \Livewire\LivewireManager $instance */
return $instance->mount($name, $params);
}
/**
*
*
* @static
*/
public static function dummyMount($id, $tagName)
{
/** @var \Livewire\LivewireManager $instance */
return $instance->dummyMount($id, $tagName);
}
/**
*
*
* @static
*/
public static function test($name, $params = [])
{
/** @var \Livewire\LivewireManager $instance */
return $instance->test($name, $params);
}
/**
*
*
* @static
*/
public static function visit($browser, $class, $queryString = '')
{
/** @var \Livewire\LivewireManager $instance */
return $instance->visit($browser, $class, $queryString);
}
/**
*
*
* @static
*/
public static function actingAs($user, $driver = null)
{
/** @var \Livewire\LivewireManager $instance */
return $instance->actingAs($user, $driver);
}
/**
*
*
* @static
*/
public static function styles($options = [])
{
/** @var \Livewire\LivewireManager $instance */
return $instance->styles($options);
}
/**
*
*
* @static
*/
public static function scripts($options = [])
{
/** @var \Livewire\LivewireManager $instance */
return $instance->scripts($options);
}
/**
*
*
* @static
*/
public static function isLivewireRequest()
{
/** @var \Livewire\LivewireManager $instance */
return $instance->isLivewireRequest();
}
/**
*
*
* @static
*/
public static function getRootElementTagName($dom)
{
/** @var \Livewire\LivewireManager $instance */
return $instance->getRootElementTagName($dom);
}
/**
*
*
* @static
*/
public static function dispatch($event, ...$params)
{
/** @var \Livewire\LivewireManager $instance */
return $instance->dispatch($event, ...$params);
}
/**
*
*
* @static
*/
public static function listen($event, $callback)
{
/** @var \Livewire\LivewireManager $instance */
return $instance->listen($event, $callback);
}
/**
*
*
* @static
*/
public static function isOnVapor()
{
/** @var \Livewire\LivewireManager $instance */
return $instance->isOnVapor();
}
/**
*
*
* @static
*/
public static function withQueryParams($queryParams)
{
/** @var \Livewire\LivewireManager $instance */
return $instance->withQueryParams($queryParams);
}
}
}
namespace Illuminate\Http {
@ -14824,6 +15006,115 @@
}
}
namespace Illuminate\Testing {
/**
*
*
* @mixin \Illuminate\Http\Response
*/
class TestResponse {
/**
*
*
* @see \Livewire\LivewireServiceProvider::registerTestMacros()
* @param mixed $component
* @static
*/
public static function assertSeeLivewire($component)
{
return \Illuminate\Testing\TestResponse::assertSeeLivewire($component);
}
/**
*
*
* @see \Livewire\LivewireServiceProvider::registerTestMacros()
* @param mixed $component
* @static
*/
public static function assertDontSeeLivewire($component)
{
return \Illuminate\Testing\TestResponse::assertDontSeeLivewire($component);
}
}
}
namespace Illuminate\View {
/**
*
*
*/
class ComponentAttributeBag {
/**
*
*
* @see \Livewire\LivewireServiceProvider::registerViewMacros()
* @param mixed $name
* @static
*/
public static function wire($name)
{
return \Illuminate\View\ComponentAttributeBag::wire($name);
}
}
/**
*
*
*/
class View {
/**
*
*
* @see \Livewire\Macros\ViewMacros::extends()
* @param mixed $view
* @param mixed $params
* @static
*/
public static function extends($view, $params = [])
{
return \Illuminate\View\View::extends($view, $params);
}
/**
*
*
* @see \Livewire\Macros\ViewMacros::layout()
* @param mixed $view
* @param mixed $params
* @static
*/
public static function layout($view, $params = [])
{
return \Illuminate\View\View::layout($view, $params);
}
/**
*
*
* @see \Livewire\Macros\ViewMacros::section()
* @param mixed $section
* @static
*/
public static function section($section)
{
return \Illuminate\View\View::section($section);
}
/**
*
*
* @see \Livewire\Macros\ViewMacros::slot()
* @param mixed $slot
* @static
*/
public static function slot($slot)
{
return \Illuminate\View\View::slot($slot);
}
}
}
@ -17938,6 +18229,7 @@ namespace {
class Validator extends \Illuminate\Support\Facades\Validator {}
class View extends \Illuminate\Support\Facades\View {}
class Flare extends \Facade\Ignition\Facades\Flare {}
class Livewire extends \Livewire\Livewire {}
}

View File

@ -0,0 +1,26 @@
<?php
namespace App\Http\Livewire;
use Livewire\Component;
class Picker extends Component
{
public string $model;
public string $term = '';
/**
* Get the view / contents that represent the component.
*
* @return \Illuminate\Contracts\View\View|string
*/
public function render()
{
if (!empty($this->term)) {
$results = $this->model::search($this->term);
} else {
$results = [];
}
return view('livewire.picker')->with('results', $results);
}
}

View File

@ -7,6 +7,7 @@ use App\Models\Traits\Sluggable;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Support\Collection;
/**
* App\Models\Food
@ -102,4 +103,11 @@ class Food extends Model
public function foodAmounts(): HasMany {
return $this->hasMany(FoodAmount::class);
}
/**
* Gets search results for a term.
*/
public static function search(string $term): Collection {
return (new static)::where('name', 'like', "%{$term}%")->get();
}
}

View File

@ -11,6 +11,7 @@
"guzzlehttp/guzzle": "^7.0.1",
"laravel/framework": "^8.12",
"laravel/tinker": "^2.5",
"livewire/livewire": "^2.3",
"phospr/fraction": "^1.2"
},
"require-dev": {

74
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "7054301f9158e201ddff5b37f41a1c5a",
"content-hash": "2444634e1b5e5d38a38dca7c11f43824",
"packages": [
{
"name": "asm89/stack-cors",
@ -1519,6 +1519,78 @@
],
"time": "2020-10-18T11:50:25+00:00"
},
{
"name": "livewire/livewire",
"version": "v2.3.6",
"source": {
"type": "git",
"url": "https://github.com/livewire/livewire.git",
"reference": "8663232c198ef12964b62559e9bb2023eb86701d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/livewire/livewire/zipball/8663232c198ef12964b62559e9bb2023eb86701d",
"reference": "8663232c198ef12964b62559e9bb2023eb86701d",
"shasum": ""
},
"require": {
"illuminate/database": "^7.0|^8.0",
"illuminate/support": "^7.0|^8.0",
"illuminate/validation": "^7.0|^8.0",
"php": "^7.2.5|^8.0",
"symfony/http-kernel": "^5.0"
},
"require-dev": {
"calebporzio/sushi": "^2.1",
"laravel/framework": "^7.0|^8.0",
"mockery/mockery": "^1.3.1",
"orchestra/testbench": "^5.0|^6.0",
"orchestra/testbench-dusk": "^5.2|^6.0",
"phpunit/phpunit": "^8.4|^9.0",
"psy/psysh": "@stable"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"Livewire\\LivewireServiceProvider"
],
"aliases": {
"Livewire": "Livewire\\Livewire"
}
}
},
"autoload": {
"files": [
"src/helpers.php"
],
"psr-4": {
"Livewire\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Caleb Porzio",
"email": "calebporzio@gmail.com"
}
],
"description": "A front-end framework for Laravel.",
"support": {
"issues": "https://github.com/livewire/livewire/issues",
"source": "https://github.com/livewire/livewire/tree/v2.3.6"
},
"funding": [
{
"url": "https://github.com/calebporzio",
"type": "github"
}
],
"time": "2021-01-08T17:33:29+00:00"
},
{
"name": "monolog/monolog",
"version": "2.2.0",

View File

@ -17,6 +17,7 @@
<script src="{{ asset('js/app.js') }}" defer></script>
@isset($styles) {{ $styles }} @endisset
@livewireStyles
</head>
<body class="font-sans antialiased">
<div class="min-h-screen bg-gray-100">
@ -51,5 +52,6 @@
</div>
@isset($scripts) {{ $scripts }} @endisset
@livewireScripts
</body>
</html>

View File

@ -0,0 +1,31 @@
<div x-data="{isTyped: false}">
<div>
<div>
<x-inputs.input type="text"
name="picker"
placeholder="{{__('Search ...')}}"
x-on:input.debounce.400ms="isTyped = ($event.target.value != '')"
autocomplete="off"
wire:model.debounce.500ms="term"
aria-label="Search input" />
</div>
<!-- TODO: Implement as a library like Select2 or Chosen. -->
<div x-show="isTyped" x-cloak>
<div class="absolute bg-white">
@forelse($results as $result)
<div class="p-1 hover:bg-yellow-300 cursor-pointer">
<ul>
<li>
{{ Str::limit($result->name, 40) }}
</li>
</ul>
</div>
@empty
<div x-cloak>
No results found.
</div>
@endforelse
</div>
</div>
</div>
</div>

View File

@ -86,11 +86,12 @@
:selectedValue="old('foods_unit.' . $i, $unit)">
<option value=""></option>
</x-inputs.select>
<x-inputs.select name="foods[]"
:options="$foods"
:selectedValue="old('foods.' . $i, $food_id)">
<option value=""></option>
</x-inputs.select>
{{-- <x-inputs.select name="foods[]"--}}
{{-- :options="$foods"--}}
{{-- :selectedValue="old('foods.' . $i, $food_id)">--}}
{{-- <option value=""></option>--}}
{{-- </x-inputs.select>--}}
<livewire:picker model="\App\Models\Food">
<x-inputs.input type="text"
class="block"
name="foods_detail[]"