第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何將 Laravel Livewire 與 Eloquent 模型結(jié)合使用?

如何將 Laravel Livewire 與 Eloquent 模型結(jié)合使用?

PHP
縹緲止盈 2023-06-30 16:03:52
我正在第一次在項(xiàng)目中嘗試 Laravel Livewire。我正在嘗試構(gòu)建一個(gè)相當(dāng)簡(jiǎn)單的表單,其中包含一組級(jí)聯(lián)下拉菜單 - 一個(gè)輸入依賴于另一個(gè)輸入。但是,當(dāng)我嘗試將雄辯的對(duì)象傳遞給組件屬性時(shí),它會(huì)轉(zhuǎn)換為字符串,因此我無(wú)法訪問(wèn)該對(duì)象的任何屬性。我覺(jué)得我可能缺少一些非常簡(jiǎn)單的東西。這是我的組件代碼:PostComponent.phpclass PostComponent extends Component{    public $manufacturers;    public $manufacturer = 'Select a Manufacturer';    public $cars;    public function mount()    {        $this->manufacturers = Manufacturer::orderBy('name')->get();     }        public function updated()    {        $this->cars = Car::where('manufacturer_id', $this->manufacturer->id)->get();    }    public function render()    {        return view('livewire.post-component');    }這是我的刀片文件:<label for="manufacturer">Manufacturer</label><select wire:model="manufacturer" id="manufacturer">    <option selected="selected" disabled>Select a Manufacturer</option>        @foreach($manufacturers as $selectableManufacturer)            <option value="{{ $selectableManufacturer }}">{{ $selectableManufacturer->name }}</option>        @endforeach</select>當(dāng)我嘗試在下拉列表中選擇制造商時(shí),我可以記錄$manufacturer并看到該值是{"id":16,"name":"Manufacturer1","description":"lorem ipsum","created_at":"2020-06-26T23:44:37.000000Z","updated_at":"2020-06-26T23:44:37.000000Z"}  但是,當(dāng)我嘗試在生命周期掛鉤中選擇汽車(chē)時(shí)嘗試獲取id制造商的信息時(shí)updated,出現(xiàn)錯(cuò)誤嘗試獲取非對(duì)象的屬性“id”知道為什么會(huì)發(fā)生這種情況以及如何解決它嗎?
查看完整描述

3 回答

?
MMMHUHU

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊

您的實(shí)現(xiàn)的問(wèn)題是,在選擇框中您在刀片中回顯的是string,而不是object,因此線模式將通過(guò)獲取輸入事件的值并將其與后端同步來(lái)完成其工作。有兩種方法可以實(shí)現(xiàn)您的目標(biāo)。


將 select 選項(xiàng)的值作為制造商 id,然后您可以直接在更新的生命周期掛鉤中使用它。

 <label for="manufacturer_id">Manufacturer</label>

    <select wire:model="manufacturer_id" id="manufacturer_id">

        <option selected="selected" disabled>Select a Manufacturer</option>

        @foreach($manufacturers as $selectableManufacturer)

        <option value="{{ $selectableManufacturer->id }}">{{ $selectableManufacturer->name }}</option>

        @endforeach

    </select>


在更新的鉤子中,


 

 public $manufacturer_id; 

 public function updated() 

    {

        $this->cars = Car::where('manufacturer_id', $this->manufacturer_id)->get();

    }


或者只是使用該json_decode()函數(shù)使其成為一個(gè)對(duì)象,然后像您所做的那樣訪問(wèn) id 屬性。

 public function updated()

    {

        $manufacturer = json_decode($this->manufacturer);

        $this->cars = Car::where('manufacturer_id', $manufacturer->id)->get();

    }

但健康的方法是使用 id 作為值。



查看完整回答
反對(duì) 回復(fù) 2023-06-30
?
精慕HU

TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個(gè)贊

您應(yīng)該同步id所選制造商的 并在更新的掛鉤中使用它。以下是您可以如何做到這一點(diǎn)。


class PostComponent extends Component

{

    public $manufacturers;

    public $manufacturer_id;

    public $manufacturer = 'Select a Manufacturer';

    public $cars;


    public function mount()

    {

        $this->manufacturers = Manufacturer::orderBy('name')->get(); 

    }

    

    public function updatedManufacturerId()

    {

        $this->cars = Car::where('manufacturer_id', $this->manufacturer_id)->get();

    }


    public function render()

    {

        return view('livewire.post-component');

    }

}

前端可以保持不變。


    <label for="manufacturer_id">Manufacturer</label>

    <select wire:model="manufacturer_id" id="manufacturer_id">

        <option selected="selected" disabled>Select a Manufacturer</option>

        @foreach($manufacturers as $selectableManufacturer)

        <option value="{{ $selectableManufacturer->id }}">{{ $selectableManufacturer->name }}</option>

        @endforeach

    </select>


查看完整回答
反對(duì) 回復(fù) 2023-06-30
?
慕哥9229398

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊

只需按照文檔進(jìn)行操作即可:

https://laravel-livewire.com/docs/2.x/properties#binding-models


查看完整回答
反對(duì) 回復(fù) 2023-06-30
  • 3 回答
  • 0 關(guān)注
  • 191 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)