php怎么运动表单,程序员都是怎么工作的?
程序员装备
一个主机,两个显示器,一个机械键盘(ctrl键、C键、V键三个键上面的字很模糊),一个花里胡哨的游戏鼠标,旁边几本放了很久没怎么碰过的技术相关书籍,保温杯,一个靠枕,一个折叠椅。
工作内容我说我们的工作量大多数靠Ctrl+C、Ctrl+V完成的你们信吗???
pycharm、vscode、idea及其它jetbrains全家桶、android studio、WebStorm、cmd命令行、谷歌浏览器、Navicat......各种编程辅助工具。
你们以为我们的工作环境 VS 实际工作环境你们以为我们的工作内容 VS 实际的工作内容你们以为我们的样子 VS 实际的样子你们以为我们的工作技能 VS 实际工作技能你们以为老实人容易脱单 VS 实际情况ORM模型一般如何使用?
引言
前两期为了说明laravel框架提供的数据库操作能力,直接使用DB门面操作, 而没有引入更为强大的eloquent orm功能。从本期开始,我们就分次把 eloquent的一些简要知识点,为大家提炼演示一下。主要以代码为主,配以简要说明。
学习时间
Eloquent其实是一个 ActiveRecord 类型的 ORM。这是一个位于数据库操作之上的一个中间层, 不仅仅是对于整张表的操作,更能细化到每行记录的增删改查。
创建一个模型类非常简单,只用继承系统的模型就可以了:
use Illuminate\Database\Eloquent\Model; class Contact extends Model {}
因为遵循的是约定大于配置的惯例,所以上述模型如不指定表名,默认就是默认数据库的contacts表了。
对于数据库插入新条目,则可以便捷地使用模型的方法执行,比如下面这样:
public function save(Request $request) {
$contact = new Contact();
$contact->first_name = $request->input('first_name');
$contact->last_name = $request->input('last_name');
$conatct->email = $request->input('email');
$contact->save();
return redirect('contacts');
}
创建一个合约,并使用传入的表单数据填充。接着是使用模型对数据的查询:
public function show($contactId) { return Contact::findOrFail($contactId); }
这里有一个语法糖,就是 findOrFail,如果找到就返回一个模型,找不到就返回默认错误页面。 上述方法会对Contact模型调用toArray方法进行格式化,然后返回一个 JsonResponse 对象的响应体。
如果返回的模型想要手动定制一下,那么在查询结果集中,使用Collection提供的格式化功能就好了。
public function vips() { return Contact::where('vip', true)->get()->map(function ($contact) { $contact->formalName = "The exalted {$contact->first_name} of the {$contact->last_name}s"; return $contact; }); }
大家注意,get方法返回的是一个 Eloquent Collection,包含了Model模型的集合。所以使用map遍历集合元素时, 每个元素其实都是一个独立的Contact对象,直接给对象追加属性就可以增加字段了。
创建模型
除了上面我们使用手动创建模型文件之外,laravel还为我们提供了命令行方式快捷创建。 使用下面的指令:
php artisan make:model Contact
这样会在 App 命名空间下生成一个标准的模型文件 Contact.php,内容如下:
namespace App; use Illuminate\Database\Eloquent\Model; class Contact extends Model { // }
如果数据库表还没有创建,你想要把迁移文件的骨架代码也生成出来,只需在生成指令上追加参数如下:
php artisan make:model Contact --migration
有些时候,我们维护一些数据库和表,想要动态切换某个模型所对应的数据库表, 那么只需在模型文件内手动指定表名即可:
protected $table = 'contacts_secondary';
如果你使用的主键不是id,是自定义的字段名,那也可以手动指定:
protected $primaryKey = 'contact_id';
这个contact_id是系统维护,而非自增的,你需要显式声明不要自增这个字段:
public $incrementing = false;
如果创建的表内有created_at, updated_at等等标准字段,而在数据库表的字段默认值内允许为NULL,或者默认为NULL。 你想要他们自动更新为当前系统时间,只需要添加这个配置项:
public $timestamps = false;
存储的日期时间格式,也可以自定义:
protected $dateFormat = 'Ymd His';
好了,关于模型的基本属性和常用方法,也就这些了。
写在最后
本文通过演示laravel框架模型创建,以及通过演示默认配置项到自定义配置内容, 为大家展示了Model所具备的一些很赞的特性。
Happy coding :-)
我是@程序员小助手,持续分享编程知识,欢迎关注。
PHP使用curl函数发送Post请求的注意事项?
对于一个初学者来说,接口可能觉得有些高大上,但是了解后其实比较简单的。从简单方面理解,你可以理解成get请求或者post请求,只不过是通过curl的模块从PHP层模仿需要从前端提交的get或者post表单而已,本来get或者post的提交,常见的都是通过前端的form表单去提交,但是php写接口,其实就是根据curl模块区模拟而已。
另外如果是对接其他文档的话,你需要仔细的阅读文档,因为写接口的时候,接口需求以及处理加密方式 对于阅读能力差的人来说 很不友好,比如需要加密token,那么这加密该如何加密?怎么加密?需要衔接上才可以。
举例子:A平台 对接 B平台的接口,那么请求接口的时候,就得遵守B平台梳理出来的接口规则,例如加密方式? 请求方式?以及参数类型等等...
PHP的开发效率比java要高?
PHP的开发效率更高,毋庸置疑,我也不接受反驳。到Java从排名来看确实更好,这主要得益于它的开发规范相对更标准化一点,一些企业级系统管理应用会更偏向Java的选择。下面从不同的纬度谈谈两者的一些区别,仅供参考。
1.语言特点主要区别PHP属于弱类型语言,给予程序员的空间很大,语言相对灵活,开发者不受约束。Java属于强类型语言,语法看似啰嗦,实则非常规范,相对更标准化。2.同一应用PHP开发效率肯定高都知道PHP是为web而生,全球大部分网站都是使用PHP语言,尤其国外。非常著名的就是博客wordpress,纯PHP写法,自定义主题,灵活的插件扩展,你完全可以按照你的需求构建自己的Blog。而PHP在数据处理上,也提供有非常多内置函数,这样就节省了非常多的开发时间。而同一个项目既可以用PHP也可以用JAVA的话,企业一般会优先考虑Java,为什么?这主要得益于Java的语言特征是强类型语言,在开发项目中标准会很容易规范。但是并不是PHP就不好,只是个别对于语言特征的偏向性不同而已。很多人说PHP不能构建复杂健壮稳定的系统,我只能说你对于PHP的理解还不够深入。一个系统不能单纯的只看一种语言的特性,要结合多方面考虑,比如系统结构、并发、请求、算法、数据库、服务器等多方面因素。好了就说到这里吧,每个人对于语言的理解不同,具体在开发过程中使用什么语言根据项目个自身情况决定吧!但是就单纯同一个应用开发效率PHP肯定比java高。怎么在网页上用PHP做个搜索功能?
通过from表单,将查询的关键词,通过 like 跟数据进行模糊查询对比
从topics表中查询字段subject与传进来的参数'$_POST['topic']进行比较模糊查询
设subject字段数据为:数学,英语,物理,化学,英文
$subject=$_POST['topic'];
$sql = "select * from topics where subject like '%" .$subject. "%'";
$result = mysql_query($sql);
若从表单提交的‘topic’值为“学”,得到的结果将是:数学,化学
多个字段匹配查询:
$sql = "select id,subject from topics where (id like '%" .$id. "%') or (name like '%" .$name. "%') or (subject like '%" .$subject. "%') order by id desc";
结果依据字段id的顺序