SlideShare a Scribd company logo
1 of 16
LiveWireの紹介
2019/11/27 杉江
自己紹介
• フリーランスエンジニア 杉江正
• サイバーエージェントに出資してもらって会社作ったけ
ど潰れたので、今フリーランス
• LaravelとSpringBootが好き
2
Laracastsってなに?
• Laravelをインストールしてそのまま動かすと Laracastsのリンク
• Laravel公式のeラーニング動画サイト
Laracastsでの発表
• https://laracasts.com/series/guest-spotlight/episodes/3
LiveWireとは
• CALEB PORZIOが作った Laravel用パッケージ
• https://github.com/calebporzio/laracasts-livewire-datatable
• https://laravel-livewire.com/
• 動的なテーブル表示を簡単につくれる
デモ
• cd /Users/tsugie/test/laravel/laracasts-livewire-datatable
• php artisan serve
• http://127.0.0.1:8000/
or
http://127.0.0.1:8001/
しくみ
• ajaxでpostメソッドで問い合わせをして
• <ul></ul> 内を innerHTMLで差し替えている
• vueじゃない、jQueryも使ってない
インストール
• composerでインストール
• composer require livewire/livewire
bladeに仕込む
• 表示させたい blade ファイルに
@livewireAssets
を入れる。
こんな感じ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Projects</title>
@livewireAssets
</head>
artisan make:livewire
• php artisan make:livewire foowire
• 2つのファイルが作られる
• CLASS: app/Http/Livewire/Foowire.php
• VIEW: resources/views/livewire/foowire.blade.php
CLASS Foowire.phpに処理を
書く
<?php
namespace AppHttpLivewire;
use LivewireComponent;
class Foowire extends Component
{
public $perPage = 10;
// public $search = '';// input wire:model="search" と同期する
public $search = '';
public function clear() {
$this->search = '';
}
public function render()
{
$contacts = AppContact::search($this->search)->paginate($this->perPage);
return view('livewire.foowire', ['contacts' => $contacts]);
}
}
検索して paginate を呼び
結果を blade の view に
渡す
Model Contacts.php
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Contact extends Model
{
protected $guarded = [];
protected $casts = ['birthdate' => 'date'];
public static function search($query)
{
return empty($query) ? static::query()
: static::where('name', 'like', '%'.$query.'%')
->orWhere('email', 'like', '%'.$query.'%');
}
}
foowire.blade.php 一覧表示部
分のbladeを書く<div>
<div class="row mb-4">
<div class="col form-inline">
Per Page: &nbsp;
<select wire:model="perPage" class="form-control">
<option>10</option>
<option>25</option>
</select>
</div>
<div class="col">
<input wire:model="search" class="form-control" type="text" placeholder="Search Contacts...">
</div>
</div>
<div class="row">
<table class="table">
<tbody>
@foreach ($contacts as $contact)
<tr>
<td>{{ $contact->name }}</td>
<td>{{ $contact->email }}</td>
<td>{{ $contact->birthdate->format('m-d-Y') }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="row">
<div class="col">
{{ $contacts->links() }}
</div>
<div class="col text-right text-muted">
Showing {{ $contacts->firstItem() }} to {{ $contacts->lastItem() }} out of {{ $contacts->total() }} results
</div>
</div>
</div>
Laravelの
Paginateの処理と
自動連携する。
すごい!
wire:model='perPage'で
Foowire.php の $perPageと
同期する。すごい!
うごくJavaScript
1行も書いてない!
すごい!
使ってみて
• 今のバージョンは0.4で微妙に動作が不安定
• プロダクトで使うのはもう少し待ったほうが良さそう
• 新しいパッケージだから PHPStomeが wire:model とかがエラー
表示されてしまう
• LiveWire作った CALEB PORZIO 本人が作った動画
https://laracasts.com/series/guest-spotlight/episodes/3
フリーで見られるようなのでオススメ
• Laravel LiveWireでググるといろいろ見つかる
おしまい
• ご清聴ありがとうございました

More Related Content

What's hot

What's hot (11)

OWASP Projects
OWASP ProjectsOWASP Projects
OWASP Projects
 
Security Advisories Checker on Travis/Circle CI
Security Advisories Checker on Travis/Circle CISecurity Advisories Checker on Travis/Circle CI
Security Advisories Checker on Travis/Circle CI
 
Good-Bye Swagger
Good-Bye SwaggerGood-Bye Swagger
Good-Bye Swagger
 
Skinny Framework で始めた Scala
Skinny Framework で始めた ScalaSkinny Framework で始めた Scala
Skinny Framework で始めた Scala
 
気が狂わないサーバ増設x10
気が狂わないサーバ増設x10気が狂わないサーバ増設x10
気が狂わないサーバ増設x10
 
PlayFramework1.x基礎編
PlayFramework1.x基礎編PlayFramework1.x基礎編
PlayFramework1.x基礎編
 
PWA 総まとめ @ABC 2018 Spring
PWA 総まとめ @ABC 2018 SpringPWA 総まとめ @ABC 2018 Spring
PWA 総まとめ @ABC 2018 Spring
 
【テックリンク】平日の夜1時間で学ぶ!RubyonRails初心者ハンズオン
【テックリンク】平日の夜1時間で学ぶ!RubyonRails初心者ハンズオン 【テックリンク】平日の夜1時間で学ぶ!RubyonRails初心者ハンズオン
【テックリンク】平日の夜1時間で学ぶ!RubyonRails初心者ハンズオン
 
ASP.NET WebAPI 体験記 #clrh99
ASP.NET WebAPI 体験記 #clrh99ASP.NET WebAPI 体験記 #clrh99
ASP.NET WebAPI 体験記 #clrh99
 
20171122_VAddyMeetUp_EC-CUBEでのVAddy活用事例
20171122_VAddyMeetUp_EC-CUBEでのVAddy活用事例20171122_VAddyMeetUp_EC-CUBEでのVAddy活用事例
20171122_VAddyMeetUp_EC-CUBEでのVAddy活用事例
 
Go 言語で CLI ツールを作ってみた
Go 言語で CLI ツールを作ってみたGo 言語で CLI ツールを作ってみた
Go 言語で CLI ツールを作ってみた
 

Similar to Laravel Livewire の紹介

Similar to Laravel Livewire の紹介 (20)

魔法少女 Laravel 2014
魔法少女 Laravel 2014魔法少女 Laravel 2014
魔法少女 Laravel 2014
 
Docker friendly PHP / Laravel
Docker friendlyPHP / LaravelDocker friendlyPHP / Laravel
Docker friendly PHP / Laravel
 
Laravel_オープンソースカンファレンスhokkaido_JP_2014
Laravel_オープンソースカンファレンスhokkaido_JP_2014Laravel_オープンソースカンファレンスhokkaido_JP_2014
Laravel_オープンソースカンファレンスhokkaido_JP_2014
 
Laravelから学びレガシーと闘いはじめた
Laravelから学びレガシーと闘いはじめたLaravelから学びレガシーと闘いはじめた
Laravelから学びレガシーと闘いはじめた
 
はてなのサービスの開発環境
はてなのサービスの開発環境はてなのサービスの開発環境
はてなのサービスの開発環境
 
Laravel5.1をつかったWebアプリケーション開発
Laravel5.1をつかったWebアプリケーション開発Laravel5.1をつかったWebアプリケーション開発
Laravel5.1をつかったWebアプリケーション開発
 
Laravel meetup5(Laravel meet NewSQL/VoltDB )
Laravel meetup5(Laravel meet NewSQL/VoltDB )Laravel meetup5(Laravel meet NewSQL/VoltDB )
Laravel meetup5(Laravel meet NewSQL/VoltDB )
 
Laravel heroku-push
Laravel heroku-pushLaravel heroku-push
Laravel heroku-push
 
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
laravel websocket(use redis pubsub) [Laravel meetup tokyo]laravel websocket(use redis pubsub) [Laravel meetup tokyo]
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
 
Serverless Framework 使ってる話(node.js)
Serverless Framework 使ってる話(node.js)Serverless Framework 使ってる話(node.js)
Serverless Framework 使ってる話(node.js)
 
Laravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミLaravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミ
 
クラウドネイティブ世代がインフラに触れるということ
クラウドネイティブ世代がインフラに触れるということクラウドネイティブ世代がインフラに触れるということ
クラウドネイティブ世代がインフラに触れるということ
 
Walter ファミリーの紹介 at Shibuya.go#1
Walter ファミリーの紹介 at Shibuya.go#1Walter ファミリーの紹介 at Shibuya.go#1
Walter ファミリーの紹介 at Shibuya.go#1
 
Laravel Mix とは何なのか? - Laravel/Vue 勉強会 #1
Laravel Mix とは何なのか? - Laravel/Vue 勉強会 #1Laravel Mix とは何なのか? - Laravel/Vue 勉強会 #1
Laravel Mix とは何なのか? - Laravel/Vue 勉強会 #1
 
とりあえず使えるSBT
とりあえず使えるSBTとりあえず使えるSBT
とりあえず使えるSBT
 
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
 
Salesforce Lightning をやってみてあれこれ
Salesforce Lightning をやってみてあれこれSalesforce Lightning をやってみてあれこれ
Salesforce Lightning をやってみてあれこれ
 
カオスエンジニアリング入門〜ChaosBladeの紹介〜
カオスエンジニアリング入門〜ChaosBladeの紹介〜カオスエンジニアリング入門〜ChaosBladeの紹介〜
カオスエンジニアリング入門〜ChaosBladeの紹介〜
 
Laravel4で運用するサービス,そしてlaravel5へ
Laravel4で運用するサービス,そしてlaravel5へLaravel4で運用するサービス,そしてlaravel5へ
Laravel4で運用するサービス,そしてlaravel5へ
 
HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例
 

Laravel Livewire の紹介