laravel-4 相关问题

Laravel 4.2是Taylor Otwell创建的开源PHP Web开发MVC框架的早期版本。 Laravel使用简单,富有表现力的语法帮助您创建应用程序。

如何让 Laravel 返回 JSON REST API 的自定义错误

我正在开发某种 RESTful API。当发生某些错误时,我会抛出 App::abort($code, $message) 错误。 问题是:我希望他抛出一个 json 形式的数组,其中键为“code”和“messag...

回答 10 投票 0

为什么 Laravel 中的 .env 文件配置不起作用

DB_CONNECTION=mysql DB_HOST=127.0.0.1 数据库端口=3306 DB_数据库= DB_USERNAME=root 数据库密码= 这是我的 laravel 5.4 配置 但是 php artisan migrate 不起作用...

回答 9 投票 0

在 Laravel 中播种大数据的最佳案例

我有一个包含超过 30,000 条记录的文件,另一个包含 41,000 条记录。是否有使用 laravel 4 的 db:seed 命令播种的最佳案例研究?一种使插入速度更快的方法。 谢谢你的...

回答 5 投票 0

删除带有外键的列 Laravel 错误:一般错误:1025 重命名时出错

我使用这样的迁移创建了一个表: 公共函数 up() { 架构::create('despatch_discrepancies', function($table) { $table->increments('id')->unsigned(); ...

回答 9 投票 0

Laravel Blade @include 使用变量的视图

我有一些刀片模板文件,我想根据会话中存储的当前用户的权限动态地将它们包含在我的视图中。下面是我写的代码: @foreach (配置::get('

回答 2 投票 0

如何在 Laravel 中正确合并多个集合

我想将多个集合合并为一个。我确实有一个解决方案,如下: $allItems = $collection1->合并($collection2) ->合并($collection3) ...

回答 6 投票 0

Laravel 4 db 种子特定种子文件

我有一个现有的用户表,其中包含通过 db:seed 从 UserSeeder.php 播种的信息。现在,我正在添加新的产品表,并希望将信息植入产品表中。我怎样才能阻止 Laravel ...

回答 5 投票 0

Laravel 将参数从控制器传递到模型

我是 Laravel 的新手,我正在尝试将参数从控制器中的函数传递到模型中的函数。我已经这样做了: 我的控制器 类 DashBoardController 扩展 BaseController {

回答 2 投票 0

Laravel 4.1 找不到 App::environment

我的一个包(Oauth2 Madewithlove 包)中有一个文件,其中有一个我正在使用的函数。 在此功能中,我想使用适合我本地环境的某个 Facebook App 和一个 ce...

回答 1 投票 0

在视图中循环验证错误

我正在使用 Laravel 的表单验证功能,并尝试找出如何在我的视图中循环遍历表单错误。目前,我正在使用以下代码成功验证表单:

回答 2 投票 0

如何使用 Laravel 4 Eloquent 连接列?

我有一个名为tenantdetails的表,其中包含 租户 ID |名字 |姓氏 | ………… 我想通过 MyS 的串联函数将 First_Name 和 Last Name 作为一列检索...

回答 5 投票 0

使用查询生成器或 Eloquent 进行带有附加条件的 JOIN

我正在尝试使用 Laravel 查询生成器使用 JOIN 查询来添加条件。 我正在尝试使用 Laravel 查询生成器使用 JOIN 查询来添加条件。 <?php $results = DB::select(' SELECT DISTINCT * FROM rooms LEFT JOIN bookings ON rooms.id = bookings.room_type_id AND ( bookings.arrival between ? and ? OR bookings.departure between ? and ? ) WHERE bookings.room_type_id IS NULL LIMIT 20', array('2012-05-01', '2012-05-10', '2012-05-01', '2012-05-10') ); 我知道我可以使用原始表达式,但是这样就会出现 SQL 注入点。我已经使用查询生成器尝试了以下操作,但生成的查询(显然,查询结果)不是我想要的: $results = DB::table('rooms') ->distinct() ->leftJoin('bookings', function ($join) { $join->on('rooms.id', '=', 'bookings.room_type_id'); }) ->whereBetween('arrival', array('2012-05-01', '2012-05-10')) ->whereBetween('departure', array('2012-05-01', '2012-05-10')) ->where('bookings.room_type_id', '=', null) ->get(); 这是 Laravel 生成的查询: select distinct * from `room_type_info` left join `bookings` on `room_type_info`.`id` = `bookings`.`room_type_id` where `arrival` between ? and ? and `departure` between ? and ? and `bookings`.`room_type_id` is null 如您所见,查询输出没有结构(尤其是在 JOIN 范围下)。是否可以在 JOIN 下添加附加条件? 如何使用 Laravel 的查询生成器构建相同的查询(如果可能)使用 Eloquent 更好,还是应该保留 DB::select? $results = DB::table('rooms') ->distinct() ->leftJoin('bookings', function($join) { $join->on('rooms.id', '=', 'bookings.room_type_id'); $join->on('arrival','>=',DB::raw("'2012-05-01'")); $join->on('arrival','<=',DB::raw("'2012-05-10'")); $join->on('departure','>=',DB::raw("'2012-05-01'")); $join->on('departure','<=',DB::raw("'2012-05-10'")); }) ->where('bookings.room_type_id', '=', NULL) ->get(); 不太确定是否可以将 Between 子句添加到 Laravel 中的连接中。 备注: DB::raw() 指示 Laravel 不要放回引号。 通过将闭包传递给连接方法,您可以向其添加更多连接条件,on()将添加AND条件,orOn()将添加OR条件。 如果你有一些参数,你可以这样做。 $results = DB::table('rooms') ->distinct() ->leftJoin('bookings', function($join) use ($param1, $param2) { $join->on('rooms.id', '=', 'bookings.room_type_id'); $join->on('arrival','=',DB::raw("'".$param1."'")); $join->on('arrival','=',DB::raw("'".$param2."'")); }) ->where('bookings.room_type_id', '=', NULL) ->get(); 然后返回您的查询 返回$结果; 您可以在左连接中复制这些括号: LEFT JOIN bookings ON rooms.id = bookings.room_type_id AND ( bookings.arrival between ? and ? OR bookings.departure between ? and ? ) 是 ->leftJoin('bookings', function($join){ $join->on('rooms.id', '=', 'bookings.room_type_id'); $join->on(DB::raw('( bookings.arrival between ? and ? OR bookings.departure between ? and ? )'), DB::raw(''), DB::raw('')); }) 然后,您必须稍后使用“setBindings”设置绑定,如本 SO 帖子中所述: 如何将参数绑定到 Laravel 中用于模型的原始数据库查询? 虽然不漂亮,但很管用。 sql查询示例如下 LEFT JOIN bookings ON rooms.id = bookings.room_type_id AND (bookings.arrival = ? OR bookings.departure = ?) Laravel 具有多个条件的连接 ->leftJoin('bookings', function($join) use ($param1, $param2) { $join->on('rooms.id', '=', 'bookings.room_type_id'); $join->on(function($query) use ($param1, $param2) { $query->on('bookings.arrival', '=', $param1); $query->orOn('departure', '=',$param2); }); }) 我使用的是laravel5.2,我们可以添加不同选项的连接,您可以根据您的要求进行修改。 Option 1: DB::table('users') ->join('contacts', function ($join) { $join->on('users.id', '=', 'contacts.user_id')->orOn(...);//you add more joins here })// and you add more joins here ->get(); Option 2: $users = DB::table('users') ->join('contacts', 'users.id', '=', 'contacts.user_id') ->join('orders', 'users.id', '=', 'orders.user_id')// you may add more joins ->select('users.*', 'contacts.phone', 'orders.price') ->get(); option 3: $users = DB::table('users') ->leftJoin('posts', 'users.id', '=', 'posts.user_id') ->leftJoin('...', '...', '...', '...')// you may add more joins ->get(); 对于条件参数,我们可以使用 where, $results = DB::table('rooms') ->distinct() ->leftJoin('bookings', function($join) use ($param) { $join->on('rooms.id', '=', 'bookings.room_type_id') ->where('arrival','=', $param); }) ->where('bookings.room_type_id', '=', NULL) ->get(); 原始查询和标准选择之间存在差异(在 DB::raw 和 DB::select 方法之间)。 您可以使用 DB::select 做您想做的事情,然后简单地放入 ? 占位符,就像使用准备好的语句一样(这实际上就是它正在做的事情)。 一个小例子: $results = DB::select('SELECT * FROM user WHERE username=?', ['jason']); 第二个参数是一个值数组,用于从左到右替换查询中的占位符。 我的五美分计划左连接(..或..)和(..或..)和.. ->join('checks','checks.id','check_id') ->leftJoin('schema_risks', function (JoinClause $join) use($order_type_id, $check_group_id, $filial_id){ $join->on(function($join){ $join->on('schema_risks.check_method_id','=', 'check_id') ->orWhereNull('schema_risks.check_method_id') ; }) ->on(function($join) use ($order_type_id) { $join->where('schema_risks.order_type_id', $order_type_id) ->orWhereNull('schema_risks.order_type_id') ; }) ->on(function($join) use ($check_group_id) { $join->where('schema_risks.check_group_id', $check_group_id) ->orWhereNull('schema_risks.check_group_id') ; }) ->on(function($join) use($filial_id){ $join->whereNull('schema_risks.filial_id'); if ($filial_id){ $join->orWhere('schema_risks.filial_id', $filial_id); } }) ->on(function($join){ $join->whereNull('schema_risks.check_risk_level_id') ->orWhere('schema_risks.check_risk_level_id', '>' , CheckRiskLevel::CRL_NORMALLLY ); }) ; }) 新版本的提示: $rooms = Room::select('rooms.*', 'bookings.type3') ->join('bookings', function (JoinClause $join) { $join->on(['bookings.cat1' => 'rooms.cat1', 'bookings.cat2' => 'rooms.cat2']); })->get();; 除了使用两个 on 条件(AND 条件)之外,您还可以在其所有函数中使用 orOn() 条件,如 asBetween,... 这就是我解决问题的方法 - 我使用的是 Laravel 10.x,所以对于早期版本 YMMV。这用于获取当前付款期间的时间表 DB::table('DimDate') ->join('Settings', 'Settings_Key', DB::raw("'FirstPay'")) ->join('Timesheet', DB::raw('Timesheet_Date BETWEEN DATEADD(DAY, -13, DimDate_Date) AND DimDate_Date /*'), DB::raw('*/') ) ->where(DB::raw('DATEDIFF(DAY, Settings_Value_Date, DimDate_Date) % 14'), 0); 为了完成这项工作,我使用块注释来掩盖它为您添加的等号。结果(强调):

回答 10 投票 0

laravel 中 get() 和 all() 的区别

这两者在laravel中有什么区别 $输入 = 输入::get(); 和 $输入 = 输入::all(); 我应该更喜欢哪一个。

回答 3 投票 0

在 Laravel 4 Blade 中调用原生 PHP 函数不起作用

如何在 Laravel 4 Blade 文件中调用原生 PHP 函数 str_replace() ? 我想使用 str_replace() 将 Snake_case 值转换为空格分隔的单词。 我正在尝试这个 php 代码,但它是

回答 5 投票 0

如何在laravel中使用str_replace

如何在laravel框架中使用php函数str_replace。 我的数组键名称在表列名称上,因此键具有“_”,如名字、姓氏等。我想在刀片文件中删除这些“_”。我的

回答 5 投票 0

在 Laravel Blade 上写 PHP 函数可以吗

我已经在 Laravel Blade 文件上编写了函数。可以用,但不知道好不好?如果错了,php 函数应该保存在哪里。 我写在刀片的顶部, 函数转换分钟到小时...

回答 1 投票 0

laravel 类未找到(适用于本地主机,但不适用于 DO 服务器)

这是一个重复的问题 - 例如: Laravel 4 迁移 - 未找到类 但是,我已经尝试了所有解决方案(来自我能找到的每个论坛),但无法解决这个问题。 设想 我创建了一个 Laravel 4

回答 8 投票 0

Laravel 4 框架 - 查询范围不起作用

我是 Laravel 的大新手,我正在尝试执行查询范围,但它似乎不起作用,我不断收到此错误: 传递给 Letters::scopeForUser() 的参数 1 必须是...的实例

回答 1 投票 0

在laravel中使用数组值选择数据库表

我有这个排序后的数组,其中包含前 5 个产品 foreach ($bestsellers as $item) { $data = json_decode($item->order_details, true); $product_ids[] = key($data); } 排序($product_...

回答 1 投票 0

Laravel 单元测试电子邮件

我的系统发送了几封重要的电子邮件。 单元测试的最佳方法是什么? 我看到你可以将其置于假装模式,它会记录在日志中。有什么可以检查的吗?

回答 9 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.