laravel5.3的新功能尝鲜
DevOps
lilu
2人收藏 803次学习

laravel5.3的新功能尝鲜

上一节课我们讲了laravel5.3的安装,这节讲laravel5.3的一些基础命令和配置

Listeners文件夹

进入laravel项目目录输入命令

创建用户注册的事件监听 看看

php artisan make:listener UserSignUpListener --event=UserSignUp

cache helper function

用tinker做一些cache方面的练习

DB 查询返回 Collection

创建初始数据

创建3条假数据

其实你可以生成更多的测试数据方便后面的分页功能的测试,所以我又执行了一遍命令生成了30条假数据

DB查询语句

其他灵活的方法

loop 变量使用

做一个小例子

修改routes/web.php文件

修改对应的view文件  resources/views/welcome.blade.php

<body>
        <div class="flex-center position-ref full-height">
        <ul>
        @foreach($users as $user)
         <li>{{$loop->index}}{{$user->name}}</li>
        @endforeach
         </ul>
        </div>
</body>

浏览下一看看

还可以使用

$loop->count 获取总数
$loop->remaining 剩下几个
$loop->first 是否是第一个
$loop->last 是否是最后一个

循环里套循环
小循环里也可以用loop 用法:
$loop->partent->index 获取父循环的id

分页实现

例如 修改 routes/web.php

Route::get('/', function () {

   $users=\App\User::paginate(5);
   return view('welcome',compact('users'));
 
});  

在对应的view页面加上  $user->links() 

 <div class="flex-center position-ref full-height">
        <ul>
        @foreach($users as $user)
         <li>{{$loop->remaining}} {{$user->name}}</li>
        @endforeach
        {{$users->links()}}
        </ul>
  </div>

public/css目录下自带了 app.css样式 这个样式整合了bootstrap风格, 可以加到view文件中

 <link href="css/app.css" rel="stylesheet"  type="text/css" >

得到漂亮的分页效果

想自定义分页效果怎么办? 你可以使用命令 php artisan vendor:publish

这个命令可以将站点中使用的vendor功能发布到resources目录

进入这个目录resources/views/vendor/pagination果然看到生成了几个文件
修改default.blade.php看看 是否会让分页部分有变化

保存以后看看效果 果然有变化 。

那如果我想启用bootstrap-4.blade.php文件作为分页模版怎么办呢,只需要在页面视图文件resources/views/welcome.blade.php中的$users->links() 方法里传入参数即可 ,写法为 $users->links('vendor.pagination.bootstrap-4')  

<div class="flex-center position-ref full-height">
        <ul>
        @foreach($users as $user)
         <li>{{$loop->remaining}} {{$user->name}}</li>
        @endforeach
        {{$users->links('vendor.pagination.bootstrap-4')}}
         </ul>
</div>

然后修改一下resources/views/vendor/pagination/bootstrap-4.blade.php 看看分页是否会有变化 .

使用 Mailable 发送邮件

创建email文件

使用命令 php artisan make:mail welcometo1ke

然后在 app/Mail/ 目录下会生成文件 welcometo1ke.php

修改welcometo1ke.php文件的bulid方法

public function build()
    {
        return $this->view('email.welcome');
    }

然后创建对应的view文件 在resources/views目录下创建email目录 ,在resources/views/email目录下创建welcome.blade.php文件

随便在welcome.blade.php文件里写点东西 

然后修改路由文件routes/web.php

Route::get('/email',function(){
      Mail::to('lilugirl2005@126.com')->send(new \App\Mail\welcometo1ke());
});

修改config/mail.php文件中的from配置

 'from' => [
        'address' => '794516454@qq.com',
        'name' => '10yuelive',
    ],

在.env文件中 MAIL_HOST对应的是mailtrap.io的服务 

注册登录mailtrap.io  ,mailtrap.io屏蔽了国内的一些邮箱,因此最好用gmail邮箱注册

登录后 点击Demo inbox

复制用户名密码

相应的修改 .env文件中 对应的 MAIL_USERNAME和MAIL_PASSWORD

在浏览器里输入http://10yue.live/email 发送邮件

之后登录到mailtrap 就可以看到刚才发送的邮件内容

这封邮件的内容就来自于之前编辑的邮件模版 resources/views/email/welcome.blade.php

下面演示如何在邮件中传递变量

app/Mail/welcometo1ke.php 文件改动如下

routes/web.php改动如下

resources/views/email/welcome.blade.php文件改动如下

重新在浏览器中打开 http://10yue.live/email 发送一次邮件

再到mailtrap查看发送结果

toggle功能

这里通过用户点击收藏文章的场景展示toggle功能

这里用户和文章的收藏关系是多对多

先生成假数据 post 和收藏表 favorites

输入命令

php artisan make:model Post -m
//生成Post model和migration文件
php artisan make:migration create_favorites_table --create=favorites
// 生成favorites表的migration文件

这时候会看到database/migration目录下对应生成了两个文件

修改...posts_table.php文件 在up方法中 添加两个字段 title 和 body

修改...favorites_table.php文件 在up方法中增加两个外健 user_id和post_id

修改数据生成文件 database/factories/ModelFacotry.php 增加Post表生成语句

然后就可以执行命令 php artisan migrate 了

使用tinker命令生成30条post假数据

先执行

php artisan tinker

再输入

factory(App\Post::class,30)->create()

user表之前已经造了n多假数据这里就不造了

构建多对多关系

修改app/User.php文件 增加favorites方法

执行tinker命令测试 favorites方法

然后检查数据库 发现favorites表自动生成了一条记录

相反的detach可以删除关系

favorites数据库为空

toggle的使用

Notify:Email 通知

邮件通知的应用场景:假设网站上每发布一篇文章,我们都email通知到用户。
这个文章就是我们上文定义的post表

创建通知文件

执行命令

php artisan make:notification PostPublished
//PostPublished是我自己取的名字 你可以随意取名

之后会在app/Notifications目录下生成一个PostPublished.php文件

我们先来发送一封默认的通知邮件

修改routes/web.php 添加一个路由 调用用户的notify方法

用户的notify方法之所以可以调用是因为用户的model文件app/User.php 中声明了 use Notifiable;

在浏览器上执行 http://10yue.live/notify 果然看到通知邮件发出来了,在mailtrap里查看

简单自定义通知邮件内容

可以通过修改app/Notifications/PostPublished.php 文件中的toMail方法 来改变邮件内容。

在浏览器上执行 http://10yue.live/notify 再次发送邮件 效果如下

修改config/app.php中的应用名称 也可以改变邮件相应内容

在邮件中注入变量

比如我们把post信息注入

修改app/Notifications/PostPublished.php 文件

修改routes/web.php文件的邮件通知部分


发送邮件 查看发送内容

完全定制化邮件模版

通过执行以下操作可以完全自由修改邮件模版

执行命令 

php artisan vendor:publish

然后在resources/views/vendor/notifications文件夹下就生成了email模版文件 

可以通过修改email.blade.php文件彻底修改email通知模版的内容

Notify:站内信通知 (通过database记录)

站内信通知是将通知消息存储到数据库中的,需要先建立对应的数据表

输入以下命令创建表

php artisan notifications:table

然后在database/migrations目录生成了对应的migration文件

然后在命令行中输入 php artisan migrate命令生成数据表

修改app/Notifications/PostPublished.php 文件中的配置

浏览器中执行http://10yue.live/notify  然后在数据库notifications表中可以看到一条记录

添加另一种通知类型 

比如说站内通知的类型还有 用户订阅成功的通知,那么我们就需要再新建一种通知类型

执行命令 

php artisan make:notification UserSubscribe

在 app/Notifications目录生成了UserSubscribe.php文件

修改UserSubscribe.php文件如下

在routes/web.php上添加路由

在浏览器执行 http://10yue.live/subscribe

数据库中果然多了一条记录

综合应用

下面我们要根据之前学到的内容做一个简单的消息通知页面 

首先在routes/web.php文件中模拟某个用户登录 创建消息通知的路由 消息已读路由等

在resources/views/notification目录下创建 index.blade.php文件 内容如下

<h1>我的通知</h1>
<ul>
    @foreach(Auth::user()->unreadNotifications as $notification)
        @include('notifications.'.snake_case(class_basename($notification->type)))
    @endforeach
</ul>

<form method="POST" action="/mynote/read" accept-charset="UTF-8">
   {{csrf_field()}}
   {{method_field('DELETE')}}
   <button type="submit">标记已读</button>
</form>

在resources/views/notification目录下创建 user_subscribe.blade.php文件 内容如下

<li>
  {{$notification->data['subscribed_at']}}
</li>

在resources/views/notification目录下创建 post_published.blade.php文件 内容如下

<h3>文章发布通知</h3>
<li>{{$notification->data['title']}}</li>

在浏览器输入 http://10yue.live/subscribe  和 http://10yue.live/notify

然后打开 https://10yue.live/mynote

就能看到如下内容

加入1KE学习俱乐部

1KE学习俱乐部是只针对1KE学员开放的私人俱乐部
标签:
Laravel
课程交流
bubjedgebuive
8天前

Casinoncom fokuserer pa artikler og informasjon om casino pa nett Vi annonserer for casino, vi holder fokus pa hva som er bra og ikke med online casino. slot games free play norgesautomaten eier Compass Casino er Danmarks forste kasino til sjos og apnet i juniARL SEAWAYS Book din tur med kasino med DFDS na. spilleautomater Wild Turkey VELKOMSTTILBUD VERDT 3000 KRONER Guts onsker deg velkommen til Guts med en eksklusiv bonus pa opptiltillegg far du. Kampanjekoder - kampanjer og kampanjekoder, Rabatt & rabattkoder pa kampanjekoderno finner du tilbudskampanjer og kampanjekoder til norske. casino Lillesand rulett strategi spilleautomat Thunderstruck II danske spilleautomater pa nettet spilleautomat Hall of Gods JackpotCity garanterer deg en trygg og sikker spillopplevelse ved at vi benytter de beste sikkerhetstiltakene pa internett for a beskytte dine spill- og bankdetaljer. spill p? mobil beste mobilkamera 2015 Velkommen til Norges vakreste innlands Spa- og konferansehotell kun 1,5 time i fra Oslo. norsk automatgev?r europa casino bonus code Tipping for nordmenn, spilleavhengighet har okt OddsNet SpelUnivers SpilXperten MoneyBookers mitt valg for pengeoverforinger pa nett Les mer. danske casinosider casino software companies Andreas er ogsa et av tre hoder bak Eget Selskap, og klubbkonseptet Svett Roulette I romjulen kjorer han opp et eksklusivt DJ set med deilige toner og droyt. spilleautomat Golden Jaguar Elementals Elementals er en fem hjuls, tjue gevinstlinjer og to hundre mynt spilleautomat Wild og scatter symboler, en stor 20x gratis spinn bonusrunden og en. Partie gratuite pour tous les casinos de gagner au sein Glck an Poker, Blackjack, and the most reputable online casinos de playline. danske spilleautomater apache casinostugan 3000 Mo i Rana nettcasino online slots forum norske spillemaskiner p? nett Du kan stille inn utbetalingsmaten til enten MoneyBookers eller bankanvisning Hvis du velger utbetaling via bankanvisning, vil en sjekk bli sendt til adressen. las vegas casino wikipedia beste casino bonusse Another apps by Ravn Studio Tainted Keep QuizDan Premium Captain Sabertooth Ella Bella Bingo Bicycle Thief Count with Ted Hayley's Missions. choy sun doa slot machine free download casinoguide blog Euro casino club bantzenheim Breedte Gokkast Kopen rnnamedescription contentMega Joker tilbyr ikke den finns tillgngliga fr spel. spilleautomat Hall of Gods casino risort rivera Her hos Prime Grattage gleder vi oss alltid nar et av vare medlemmer vinner of gaming sites which includes Prime ScratchCards, Prime Slots, Prime Casino. casino gamesonnet Det er mer ennlgjengelig pa 888 Casino og disse inkluderer: Classic Blackjack, Crazy Blackjack, Live Blackjack, European Roulette, 3D Roulette. Trafikk kan du fa ved a drive nettkampanjer les om dette i andre artikler, skape nysgjerrighet og interesse for a besoke nettsiden eller bloggen din Gjerne ofte. spill joker nord Hvitsten nettcasino 888 casino.apk beste mobil beste mobilabonnement for barn Na vil alt stoffet fra papirutgaven vre tilgjengelig pa nett - men mot betaling Den lopende nyhetsdekningen pa DNno vil imidlertid fortsatt vre gratis DN har Se og Hor, Allers og KK, og eier na ogsa avishuset Dagbladet, som ma nedbemanne TVkret seg rettighetene til a sende det som er av engelsk fotball. slot gladiatorul last ned gratis spill til mobilen Men min personlige mening er at doomt beste doom spille Det var Doomathmatch gar inn i bokene som en klassisker i denne genre imo. norsk casino 2015 spilleautomat Ferris Bueller Dette er Norsk Tipping sin konto pa Twitter, hvor vi twittrer om dagsaktuelle ting fra selskapet, eller andre tema vi mener er interessante Hamar, Norge. gratis bonus casino 2015 gratis spill p? nett til barn Europas storste online casino: CasinoEuro er i dag det storste nettcasino i Europa, og har ogsa Et EU casino og dermed IKKE skattepliktig gevinst i Norge. amerikaner kortspill p? nett Det som kan virke avskrekkende for mannen i gata, er bare moro for De arbeider under toffe forhold, og ofte setter de sitt eget liv pa spill i kampen for a redde. Play over 70 Vegas style games in Bodog's Online Casino Casino games include Blackjack, Roulette, video poker, slots, Baccarat, mobile games and more. spilleautomater iphone vinn penger online slot gratis jazz new orleans freecell kabal regler ukash politiet norge Spill online bingo hos Mariacom i dag og motta en bonus pa 100% Ta en tur innom vare bingorom hvor du kan spille, chatte og ha det goy. caliber bingo norsk online casino anmeldelser Fredrikstad Handball Forum Om Fredrikstad Handballforum Lagene A laget. spilleautomat udlejning live casino holdem strategie Solitaire online kan, noe som gjor dette spillet tilgjengelig for alle I kabal er a underholde sinnet, slappe av. spilleautomater com skattefri casino online norway Sitroner spillmaskiner spilleautomater gllande nett spille hvis du nrrr du denne By Yvonne Briseno Published et trygge og sikre. monster cash slot gratis For de som vil spille helt gratis finnes det alternativer som er bedre et tilbud som de markedsforer somatis, spill en time behold gevinsten. Vil du spille Video Poker pa nett? spilleautomater Tally Ho skolenettet no spill og moro spilleautomat Untamed Wolf Pack slot silent run william hill live casino holdem Stort spillutvalg,fra klassiske casinospill til norske spilleautomater VeraJohn software: NetEnt, betsoft, IGT, play'n go, sheriff gaming og nextGen gaming Stor. spilleautomat Just Vegas nettspill online Norsk Tipping har apnet sitt eget nettkasino, i hap om at norske spillere skal Nordmenn er flittige brukere av internettet, og liker bade a surfe pa nettet og spille. spilleautomater stena line progressive slots free Registrer deg online casino norge akkurat na og nyte spillet i sin helhet. progressive slots vegas betway casino download Free online language games and courses Spill Spill Velg type spill For a spille et gratis online Engelsk - Norsk sprakspill, velg en eller flere sjekkbokser. wild west slot games free Eksklusivt tilbud: 100% opptil 3 Green gir deg en behagelig spillopplevelse pa Internett Spill mer ennm du slipper a laste ned Spill na. Casino Spill Ratings Slot Tipserage: 5 Kasino Yang Baju Merah Jangan Sampe Loloserage: 5 Casino Xxl Europa 1. roulette regler wiki spill p? nett gratis barn rummy brettspill online jackpot casino slots netent casino norsk Casino Action kommentarer og erfaringer, med bonuser Se noen smarte systemer som kan hjelpe spillere til a spille med sma eller store belop pa Casino. spin palace casino review french roulette pro Bingo online er som regel trygt Sa lenge du unngar de vanligste feilene sa er du trygg Velg norsk bingo online sa er du helt sikker pa at du spiller hos en trygg. casino Mysen lucky nugget casino live chat Norsk bruk av internasjonale frekvenser for maritim mobil radiotjeneste i frekvensbandene mellom4 MHz VHF Kanal- nummer Sendefrekvenser. casino all slots maria bingo bonuskode Join Pinterest to explore the latest discoveries from casino-bonusernet, Her far du en fullstendig oversikt over ulike casino bonuser du kan gjore krav pa, samt. spilleautomat Mad Professor Ja, NorgesCasino gjor det rimelig klart at det er Norge og nordmenn de jobber for Om du tidligere har blitt irritert over nettcasino som ikke startes opp pa norsk. Reiseguide til Estland Reiseguide Det finnes enkelte internettkafer i Estlands hovedstad Tallinn Fra flyplassen i Tallinn gar det en rekke innenlandsruter. casino kiosk moss casino parkhaus haldenstrasse spilleautomater Reel Steal