laravel删除模型时同时删除关联关系
夜阑卧听风吹雨, 铁马是你, 冰河也是你。
我们在没有在数据库中设计外键关联时想要在删除某一个模型时同时删除与改模型关联的相关数据, 可以试试下面这个方法
注意delete
方法需要定义在photos
方法之后;
User Model
1 |
|
夜阑卧听风吹雨, 铁马是你, 冰河也是你。
我们在没有在数据库中设计外键关联时想要在删除某一个模型时同时删除与改模型关联的相关数据, 可以试试下面这个方法
注意delete
方法需要定义在photos
方法之后;
1 | <?php |
疼痛是不能见人的
注意要引入在页面底部
1 | <script src="JsBarcode.all.min.js"></script> |
1 | <svg id="barcode"></svg> |
1 | JsBarcode("#barcode", "Hi world!"); |
1 | Option Default value Type |
1 | <body> |
知识太多了就容易装B,知识太少就容易犯浑,像我这样不多不少刚刚好,想装B就装B,想犯浑就犯浑。我们建了一个新的laravel项目并部署到了生产服务器,一切都工作正常,直到一个客户因为我们的bug遇到了一个问题,随即用户离开了我们的程序, 在我们发现这个bug之前,同样的问题发生在了越来越多的客户身上.随后你修复了bug, 所有的都恢复到了正常.但是如果你能在bug发生时得到邮件通知并很快修复他,在laravel中, 这个很容易实现; 在laravel项目中, 所有的异常都是`App\Exceptions\Handler` 这个类处理的,这个类包含了两个方法:`report`和`render`. 现在我们只关心`report`这个方法. 这个类使用日志记录异常或者是发送异常到一些其他的服务像Bugsna或者Sentry. 默认情况下, `report`这个方法只是简单的传递异常到基类中,进而被写到日志里.然而,我们也可以发送邮件给开发者关于这些异常.
1 | /** |
Each type of email sent by the application is represented as a “mailable” class in Laravel. So, we need to create our mailable class using the make:mail command:
1 | $ php artisan make:mail ExceptionOccured |
This will create a class ExceptionOccured in the app/Mail directory.
Merely sending the mail will not solve the problem. We need the full stack trace of the exception. And for that, we can use the Symfony’s Debug component.
1 | public function sendEmail(Exception $exception) |
Make sure you add the following code at the top of the file:
1 | se Mail; |
Note—We have used the try block to avoid the infinite loop if the mail command fails.
Then, in your ExceptionOccured mailer class:
1 | <?php |
Add the following code in your emails.exception view file:
1 | {!! $content !!} |
Now, whenever an exception is thrown in your application, you will receive an email with full stack trace. Cool!
I have created a Laravel package named squareboat/sneaker(https://packagist.org/packages/squareboat/sneaker) to do all this cumbersome work for you so you can concentrate on solving the bug.
Some of the features of the sneaker are:
– On/off emailing using .env file.
– Customizing the email body.
– Ignoring the exception generated by bots.
and more to come.
If you want the complete source code for this(https://github.com/akaamitgupta/laravel-error-emailer-demo), I’m more than happy to share it and you can find the source code on Github
上帝让好孩子成为好孩子,本身就是对好孩子的最佳奖赏
1 | git archive -o ../updated.zip HEAD $(git diff --name-only HEAD^) |
1 | git archive -o ../latest.zip NEW_COMMIT_ID_HERE $(git diff --name-only OLD_COMMIT_ID_HERE NEW_COMMIT_ID_HERE) |
1 | git archive -o ../latest.zip 4c1ed49e9be1223d6c22e65fa6fc10e5fbe46441 $(git diff --name-only 192f0de1dda8b194c8d75c1bd6c6cab3154de1ad 4c1ed49e9be1223d6c22e65fa6fc10e5fbe46441) |
1 | git init |
1 | git checkout --orphan NEW_BRANCH_NAME_HERE |
http://www.cnblogs.com/lhb25/p/10-useful-advanced-git-commands.html
生活就是这样,在你最糟的时候,会遇到最好的人。Fatal error: Call to undefined function imagettftext() in /var/www/apev.cn/htdocs/include/captcha.class.php on line 66 缺少 imagettftext() 函数造成生成验证码失败,解决办法是安装 freetype 并且重新编译 php,并且带上此参数。
1 | make clean |
有一天,我看了四十四次日落在laravel5.4的版本中,新增了一个新的命令可以简化在构建页面时重复使用元素.
我们假设你有一个布局文件layout.blade.php
,包含了下面这个内容:
1 | <ul id="sidebar"> |
当你想要在部件中插入元素, 你可以这样:
1 | @push('sidebar') |
这样浏览器将会渲染出一个无序的列表:
1 | <ul id="sidebar"> |
自从laravel 5.4.10 的版本中, laravel提供了一个新的prepend
命令, 这个命令运行你增加你的项目内容在浏览器渲染之前
例如:
1 | @push('sidebar') |
现在, 结果将会变成这样
1 | <ul id="sidebar"> |
这将会是非常有用的, 当你需要把你的项目内容放到最前面.
躲得过对酒当歌的夜躲不过四下无人的街laravel5.5为他的路由类提供了一系列方便的捷径, 可以消除当你仅仅需要返回一个视图或者做一个跳转时必须要创建一个闭包或者控制器来完成,如果你没能在我们的发行说明里看到他们, 让我们现在简要的介绍一下他们,他们确实可以简化你的代码, 必要时可以删除一些冗余的文件
Route::view
, 当你的路由仅仅需要返回一个视图, 这个方法可以消除你使用的控制器或者闭包, 你可以像这样定义你的URI, 顺带提供一个路由文件
1 | // resources/views/pages/about.blade.php |
当然, 你也可以传递一系列的参数到视图中
1 | Route::view('/about', 'pages.about', ['year' => date('Y')]); |
Route::redirect
, 当你使用路由仅仅做一次跳转的时候, 这个路由方法可以避免您使用控制器或者一个闭包
1 | Route::redirect('/old-about', '/about'); |
这个路由方法第三个默认的参数是301, 如果你没有传递的话, 当然,你可以传递一个不用的参数, 例如, 如果你想要创建一个307的临时跳转, 你可以这样做:
1 | Route::redirect('/old-about', '/about', 307) |
https://laravel-news.com/laravel-5-5-router-view-and-redirect
不要盲目而残忍地成为,这世界恶意的一部分。
在Laravel中要想在数据库事务中运行一组操作,则可以在 DB facade 中使用 transaction 方法。如果在事务的闭包内抛出异常,事务将会被自动还原。如果闭包运行成功,事务将被自动提交。你不需要担心在使用 transaction 方法时还需要亲自去手动还原或提交事务:
1 | DB::transaction(function () { |
如果你想手动处理事务并对还原或提交操作进行完全控制,则可以在 DB facade 使用 beginTransaction 方法:
1 | DB::beginTransaction(); //事务开始 |
注意: DB facade 的事务方法也可以用来控制 查询语句构造器 及 Eloquent ORM 的事务, 在事务中一定要定义回滚的条件, 可以用 try - catch 来捕获异常回滚, 或者是我们上面所写的这样, 根据一定的条件去判断回滚.事务的最终状态要么被提交, 要么回滚.
创建表的时候一定要使用InnoDB存储引擎
1 | public function up() |
如何查看某一张表使用的存储引擎
1 | show create table 表名; |
修改某一张表的存储引擎
1 | alter table bulk_tb_billnos engine=innodb |
看你的mysql当前默认的存储引擎
1 | show variables like '%storage_engine%'; |
朋友,然后爱人,最后什么都不是。
1 | <!DOCTYPE html> |