Laravel⾯试题及答案
Laravel是⼀个基于Symfony的免费开源PHP Web框架。 它由Taylor Otwell创建,允许开发⼈员编写富有表现⼒的优雅语法。 Laravel内置了对⽤户⾝份验证和授权的⽀持,这在⼀些最流⾏的PHP框架(如CodeIgniter,CakePHP)中缺失。通过阅读下⾯Laravel⾯试题和答案,有助于让您在⾯试过程中应付⾃如,也可作为测评或复习巩固Laravel知识。
1. 如何在Laravel中启⽤查询⽇志?
lwip使⽤enableQueryLog⽅法在Laravel中启⽤查询⽇志 -
DB::connection()->enableQueryLog();
// 可以使⽤getQueryLog⽅法获取已执⾏查询的数组:
初中辅导
$queries = DB::getQueryLog();
2. 使⽤Laravel框架有哪些优缺点?
纪念日英文使⽤Laravel框架的优点
Laravel框架具有内置的轻量级⼑⽚模板引擎,可加快编译任务并轻松创建具有动态内容的布局。
提⾼代码可重⽤性。
Eloquent ORM与PHP活动记录实现。
内置命令⾏⼯具“Artisan”,⽤于创建代码框架,数据库结构并构建其迁移。
使⽤laravel框架的缺点
开发过程要求您使⽤标准,并且应该对编程有真正的了解
Laravel是新的框架,与npm(对于node.js),ruby gems和python pip相⽐,Laravel并不是那么强⼤。
与ruby on rails相⽐,laravel的开发速度并不快。
Laravel是轻量级的,因此与django和rails相⽐,它具有较少的内置⽀持。 但是这个问题可以通过集成第三⽅⼯具来解决,但对于⼤型和⾮常⾃定义的⽹站来说,这可能是⼀项单调乏味的任务。
3. Laravel契约(Contracts) 是什么?
Laravel契约(Contracts) 只不过是⼀组定义Laravel框架提供的核⼼服务的接⼝。
4. Laravel Eloquent中可⽤的关系类型有哪些?
以下是Laravel Eloquent ORM⽀持的关系类型。
⼀对⼀
⼀对多
⼀对多(逆)
多对多
有多通过(Has Many Through)
多态关系
yochi多对多的多态关系
5. Laravel中的依赖注⼊是什么?
在软件⼯程中,依赖注⼊是⼀种技术,其中⼀个对象提供另⼀个对象的依赖关系。 依赖项是可以使⽤的对象(服务)。 注⼊是将依赖项传递给将使⽤它的依赖对象(客户端)。 该服务成为客户所在州的⼀部分。将服务传递给客户端,⽽不是允许客户端构建或查找服务,是模式的基本要求。
可以通过Constructor,tter和property injection进⾏依赖注⼊。
6. laravel中的事件是什么?
事件是程序识别的可由程序或代码处理的动作或事件。 Laravel事件提供了⼀个简单的观察器实现,⽤于订阅和侦听应⽤程序中发⽣的各种事件/操作。 所有事件类通常都存储在app/Events⽬录中,⽽其侦听器存储在应⽤程序的app/Listener中。
7. 如何关闭Laravel中特定路由的CSRF保护?
要在Laravel中关闭CSRF保护,请在⽂件:app/Http/Middleware/VerifyCsrfToken.php 中添加以下代码 -
//add an array of Routes to skip CSRF check
private $exceptUrls = ['controller/route1', 'controller/route2'];
//modify this function
public function handle($request, Closure $next) {
//add this condition foreach($this->exceptUrls as $route) {
if ($request->is($route)) {
return $next($request);
}
}
return parent::handle($request, $next);
}
8. PHP中的 Compor 是什么?
Compor是⼀个⽤于管理PHP依赖的⼯具。 它⽤于声明项⽬所依赖的库,并管理(安装/更新)它们。Laravel利⽤Compor来管理其依赖关系。
9. 为什么需要迁移?
迁移是必要的,因为:
如果没有迁移,共享应⽤程序时的数据库⼀致性⼏乎是不可能的,尤其是随着越来越多的⼈在Web应⽤程序上进⾏协作。
⽣产数据库也需要同步。
10. 请解释Laravel的服务容器是什么?
Laravel最强⼤的功能之⼀是它的服务容器。 它是⼀个强⼤的⼯具,⽤于解决类依赖关系并在Laravel中执⾏依赖注⼊。
依赖注⼊是⼀个奇特的短语,本质上意味着类依赖性通过构造函数“注⼊”类,或者在某些情况下“注⼊”⽅法。
11. 如何检查请求为ajax请求?
在Laravel中,可以使⽤$request-> ajax()⽅法检查请求是否为ajax。
⽰例:
public function saveData(Request $request)
{
if($request->ajax()){
return "Request is of Ajax Type";
}
return "Request is of Http type";
}
12. Laravel的Traits是什么?
PHP Traits只是⼀组想要包含在另⼀个类中的⽅法。Trait就像抽象类⼀样,不能⾃⼰实例化。通过使开发⼈员能够在⽣活在不同类层次结构中的⼏个独⽴类中⾃由地重⽤⽅法集,创建了Trait以减少PHP中单⼀继承的限制。
下⾯是Traits的⼀个例⼦。
trait Sharable {
public function share($item)
{
return 'share this item';
}
}
suppPHP
然后,可以将此Trait包含在其他类中,如下所⽰:
class Post {
u Sharable;
}
class Comment {
u Sharable;
}
PHP
现在,如果要从这些类中创建新对象,会发现它们都有share()⽅法可⽤:
$post = new Post;
echo $post->share(''); // 'share this item'
$comment = new Comment;
echo $comment->share(''); // 'share this item'\n
13. 什么是服务提供商/提供者?
服务提供商是所有laravel应⽤程序引导的中⼼位置。 您的应⽤程序以及所有Laravel核⼼服务也由服务提供商引导。
所有服务提供商都扩展了IlluminateSupportServiceProvider类。 ⼤多数服务提供者包含寄存器和引导⽅法。 在register⽅法中,应该只将事物绑定到服务容器中。永远不应尝试在register⽅法中注册任何事件侦听器,路由或任何其他功能。
14. 什么是Laravel?
Laravel是基于MVC设计模式的免费开源“PHP框架”。它由Taylor Otwell创建。 Laravel提供富有表现⼒和优雅的语法,有助于轻松快速地创建出⾊的Web应⽤程序。
15. 请解释laravel中的验证?
在编程中,验证是⼀种⽅便的⽅法,可确保数据在进⼊数据库之前始终处于⼲净且预期的格式。 Laravel提供了⼏种不同的⽅法来验证应⽤程序传⼊数据。默认情况下,Laravel的基本控制器类使⽤ValidatesRequests特性,它提供了⼀种⽅便的⽅法来验证来⾃客户端的所有传⼊HTTP请求。还可以通过创建表单请求来验证laravel中的数据。
16. 请列出Laravel 5.6提供的⼀些默认包?
以下是Laravel 5.6提供的⼀些官⽅/默认包的列表:
Cashier
Envoy
Passport
Scout
Socialite
Horizon
17. 什么是数据库迁移?如何通过 artisan 创建迁移?
迁移就像数据库的版本控制⼀样,让开发团队轻松修改和共享应⽤程序的数据库模式。 迁移通常与Laravel的架构构建器配对,以轻松构建应⽤程序的数据库架构。
使⽤以下命令通过 artisan 创建迁移数据。
// creating Migration
$ php artisan make:migration create_urs_table
18. Laravel中的反向路由是什么?
Laravel反向路由根据路由声明⽣成URL。反向路由使应⽤程序更加灵活。 它定义了链接和Laravel路由之间的关系。 使⽤现有路径的名称创建链接时,Laravel会⾃动创建相应的Uri。 下⾯是反向路由的⼀个例⼦。
// route declaration
新标准小学英语Route::get('login', 'urs@login');
PHP
使⽤反向路由,我们可以创建⼀个链接,并传⼊定义的任何参数。 如果未提供,可选参数将从⽣成的链接中删除。
{{ HTML::link_to_action('urs@login') }}
英文新闻PHP
19. 列出Laravel中查询构建器提供的⼀些聚合⽅法?
Laravel中查询构建器提供的⼀些聚合⽅法如下所⽰:
count()
max()
min()
avg()
sum()
20. 如何通过 compor 来安装laravel?
可以通过运⾏以下命令来使⽤ compor 安装Laravel。
$ compor create-project laravel/laravel your-project-name version
21. Laravel的 eloquent是什么?
Laravel的Eloquent ORM是⽤于处理数据库的简单Active Record实现。 Laravel提供了许多与数据库交互的不同⽅式,Eloquent最引⼈注⽬。 每个数据库表都有⼀个相应的“模型”,⽤于与该表进⾏交互。 模型可⽤于查询表中的数据,以及在表中插⼊新记录。
眼线笔怎么削下⾯是使⽤ Eloquent 在Databa中查询和插⼊新记录的⽰例⽤法。
// Querying or finding records from products table where tag is 'new'\n$products= Product::where('tag','new');
// Inrting new record
$product =new Product;关爱留学
$product->title="Iphone 7";
$product->price="$700";
$product->tag='iphone';
$product->save();
梅林传奇第5季
22. 请列出laravel 5.0的⼀些功能?
laravel 5.0的⼀些功能如下所⽰ -
内置CSRF(跨站点请求伪造)保护。
内置分页
反向路由
查询构建器
路由缓存
数据库迁移
IOC(控制反转)容器或服务容器。
23. 什么是PHP artisan?请列出 artisan 的⼀些命令?
PHP artisan是Laravel附带的命令⾏界⾯/⼯具。 它提供了许多有⽤的命令,可以帮助您轻松构建应⽤程序。 以下是⼀些 artisan 命令列表: -
php artisan list
php artisan help
php artisan tinker
php artisan make
php artisan –versian
php artisan make model model_name
php artisan make controller controller_name
24. 如何在Laravel Modal中使⽤⾃定义表?
可以通过覆盖Eloquent的受保护$table属性来在Laravel中使⽤⾃定义表。
⽰例:
class Ur extends Eloquent{
protected $table="my_ur_table";
}
PHP