本期视频登录后即可观看
Laravel开发框架核心概念
之前咱们已经介绍了Laravel基础内容以及如何使用,从本系列视频开始,咱们逐步深入Laravel中最核心的概念和理念,看一看Laravel中那些让咱们工作变得异常轻松的是什么技术。Service, Service Provider, Service Container, Facades, Contract,让咱们来一场技术层面的心灵冲刷。
之前咱们已经介绍了Laravel基础内容以及如何使用,从本系列视频开始,咱们逐步深入Laravel中最核心的概念和理念,看一看Laravel中那些让咱们工作变得异常轻松的是什么技术。Service, Service Provider, Service Container, Facades, Contract,让咱们来一场技术层面的心灵冲刷。
这个系列的视频我拖延了太久,太不应该了,评论区也开放了,自己先评一个过过瘾~
网站的更新速度怎么样呢?
哈哈,我自嘲一下吧,不快,真的不快,做视频挺累的,几分钟的视频要折腾一两个小时才能做好,我也没追求过高产,所以即便春节期间我也在做视频。
谢谢您的分享,通过您的视频我入门了laravel
不客气,做这个网站是我的爱好,本是一个简单的文字类型博客网站,只是没想到稀里糊涂做成了现在的样子
嗯,支持,我最近看项目源代码,一个网页中,右键某个节点,出现js遍历的菜单,菜单中自己加个按钮,调用Ajax或自定义的function,然后以json格式发送到后台C++接口
网站把搜索功能加上了,以后找东西会方便很多
good job~
你如果不忙的话帮我解决个问题撒~
config/api.php就写了一句话,连接C++后台的一个URL:return ["base_url"=>"http://127.0.0.1:4567/home/proaim/RAM-int_c/WSGate",];
路由定义:Route::any('/api/testApi', 'Api\ApiController@testApi');
/** * 自定义测试接口,想向接口发送个ID过去。 */ function testApi(Request $request) { $params = ['testApiParams' => $request->input("blockID")]; return $this->_api_mod->post("testApi", $params); }
app/Model/Api.php中post的代码: function post($method,$params){
$curl = new Curl(); $curl->setTimeout(600); $json = ["method"=>$method,"params"=>$params,"id"=>1]; $curl->post($this->base_url,json_encode($json));
if ($curl->error) { return ["result"=>"","error"=>"接口调用失败", "id"=>1]; } else { $result = $curl->response; return json_decode(json_encode($result),true); } }
public/assets/compManager/index.js,写的很复杂,看不太明白: 我按照他已经写好调用接口的代码,比葫芦画瓢,在下面加了句:'testApi': {label: '测试API接口', ajax: true, url: '/api/testApi'},
然后贴上下面他调用的Ajax源码: //新建 for (var key in rightClickItems) { if (rightClickItems[key].url && key !== 'sedRootFMECA') { //sedRootFMECA为根节点,没有新建 $common_xlContent_custom.on('click', '.' + key, function () { var $this = $(this) var _item = rightClickItems[$this.data('operate')]
if (_item.open) { if ($this.data('operate') === 'riskMatrix') { var _id = ztreeSedObj.getNodeByTId($this.data('tid')).id location.href = _item.url + '?blockid=' + _id } else { location.href = _item.url } } else if (_item.ajax) { // 自定义属性 data-tid="ztree_sed_1" 获取方式 当前标签.data('tid').id var _id = ztreeSedObj.getNodeByTId($this.data('tid')).id $.ajax({ url: _item.url, dataType: 'json', data: {blockID: _id, _token: _token}, type: "POST", success: function (data) { console.log(data); if (data.error == "0") { $.alert("操作成功") //他源码写好的调用后台的按钮,点一下,就会在这里弹出,我比葫芦画瓢,就提示 Wrong method QAQ咋办 } else { $.alert(data.error) } } })
} else { var _tId = $this.data('tid') if (_tId === 'ztree_main' || _tId === 'ztree_sed') { $iframeForm.prop('src', _item.url) } else { var _treeObj = $('#' + _tId).parents('.ztree')[0].id === 'ztree_main' ? ztreeMainObj : ztreeSedObj _treeObj.cancelSelectedNode() var pid = _treeObj.getNodeByTId(_tId).id $iframeForm.prop('src', _item.url + '?pid=' + pid) } } }) } }
似乎看不出有啥问题,C++ 的处理逻辑代码你能看见吗?我只能猜测了:
1. 传递函数的命名有没有啥要求,你看看它其他的实现方式
2. C++ 接收和处理的逻辑部分,使用了条件判断,那里可能有一个列表,里面列举了支持的所有的methods,method 只要不在列表中,就直接返回错误,也就是受你在 Laravel 中向C++本地服务器传递的请求没有响应的处理逻辑,返回错误也是正常的
我看不到太多,只能提供下思路
你这样说我就有点儿明白了,我说为什么比葫芦画瓢,上面的按钮操作成功下面的失败呢,可能我PHP已经写好了,只不过后台还没有做处理,所以我这里直接 wrong method
向后台请求服务都是请求后台支持的某一类服务,如果是随便传了一些无意义的数据(不在它的支持的逻辑处理分支中),那 C++ 服务器返回错误信息挺正常的,可能是这个问题,我只能按照服务器客户端的沟通逻辑帮你推理了
多谢et老师,我去尝试着不在项目中写,go to Create newLaravel Project,然后写个表单提交到后台C++接口,还是通过Ajax,并且将数据封装为json
不客气
建议以某种方式标注一下观看视频的顺序会更清晰一点,目前我所尝试的倒序的观看顺序是对不上的。
其实我作为一个不是很新的新手,随意哪个系列先看到影响不大,但对于纯新手来说可能会造成迷惑,跟着作者的顺序思路还挺有用的,这是我在作为纯新手的时候的来自内心的呼唤。
这倒是,下个阶段把这个问题搞了,视频太耗流量了,我要先解决这个问题了,流量太费钱了,不能把视频放在本地服务器了
不知道又拍云那种良心厂商会不会提供赞助,如果有赞助就好了。
另外可以开启收费模式,毕竟做这种视频很消耗精力,我想还是会有很多人愿意付费换取有效率的学习的。
另外也可以开启打赏这种,我暂时没有什么好主意了,支持!
个人博客最后要做成个商业网站了,不知道该不该高兴,但是我希望我的视频真的能给看的人带来一些价值,对大家职业有一定帮助,这样就算收费我也收的心安。
我试试可不可以粘贴上传图片
不允许的,我这里就是这种简单粗暴的风格
我再试试可不可以粘贴外链 ![测试图片](https://ws1.sinaimg.cn/large/006tNc79gy1fzsjye9jr1j31dy0u0n11.jpg)
-----
果然不可以
-----
我试试markdown
```php $a=3; ```
不用实验的,我对markdown不感冒的
还没睡....这是要猝死啊
睡了
睡了睡了,我也睡了
laravel这个框架中的解耦处理器,类似事件处理器,队列处理器可以分享一下原理实现及背后的思想吗?
下来我在框架探秘中说说这些东西吧
很期待哈,每天都在关注你的更新