我正在使用表单请求验证方法来验证laravel 5中的请求.我想用表单请求验证方法添加我自己的验证规则.我的请求类在下面给出.我想添加自定义验证numeric_array和字段项.
protected $rules = [
'shipping_country' => ['max:60'],
'items' => ['array|numericarray']
];
Run Code Online (Sandbox Code Playgroud)
我的cusotom功能如下
Validator::extend('numericarray', function($attribute, $value, $parameters) {
foreach ($value as $v) {
if (!is_int($v)) {
return false;
}
}
return true;
});
Run Code Online (Sandbox Code Playgroud)
如何在laravel5中使用此验证方法进行表单请求验证?
我正在laravel5中编写一个中间件,我希望通过中间件的代码403通过禁止的异常.我的中间件功能如下.
use Exception;
public function handle($request, Closure $next)
{
if (!Auth::check()) {
throw new Exception("Access denied", 403);
}
return $next($request);
}
Run Code Online (Sandbox Code Playgroud)
我从控制器调用中间件,我收到代码500但不是403的错误消息.我怎么解决这个问题?
我正在使用Laravel 5和AngularJS开发Web应用程序.我正在为客户端使用纯angularJS应用程序,我将客户端应用程序文件(视图)放在我的public
文件夹中.
在Laravel 4中,我可以从bootstrap/start.php
文件中更改路径.但是在Laravel 5中,我看不到start.php
文件.那么我在哪里更改Laravel 5中的配置?
当我尝试从laravel 5.1升级到5.2时,我遇到以下错误
Trait 'Illuminate\Foundation\Bus\DispatchesCommands' not found in D:\xampp\htdocs\Invoice\web\bootstrap\cache\compiled.php
Run Code Online (Sandbox Code Playgroud)
我的控制器类是,
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesCommands;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController {
use DispatchesCommands,
ValidatesRequests;
function __construct() {
$this->middleware('auth');
}
Run Code Online (Sandbox Code Playgroud)
}
在laravel文档中,他们说它已被弃用
那么我该如何解决这个问题呢?
我正在使用Laravel 5开发Web应用程序,使用RESTFUL apis开发angularJs.
使用middleware
到身份验证目的.我的问题是在同时发送几个请求后,系统自动注销并从laravel端发送401异常.
API基础控制器:
class ApiController extends BaseController {
use DispatchesCommands, ValidatesRequests;
function __construct() {
$this->middleware('api.auth');
}
}
Run Code Online (Sandbox Code Playgroud)
中间件:
class APIMiddleware {
/**
* Handle an incoming request.
*
* @param Request $request
* @param Closure $next
* @return mixed
*/
public function handle($request, Closure $next) {
if (!Auth::check()) {
abort(401, "Unauthorized");
}
return $next($request);
}
}
Run Code Online (Sandbox Code Playgroud)
登录控制器
public function login(LoginRequest $request) {
if (Auth::check()) {
Auth::logout();
}
if (Auth::attempt(['email' => $request->input('email'), 'password' => $request->input('password')], $request->input('is_remember'))) { …
Run Code Online (Sandbox Code Playgroud) 我有两张桌子,employees
和employee types
.
employees
有以下字段
并employee_type
具有以下字段,
我雄辩的模型功能是,
Employee
class Employee extends Model {
public function employeeTypes() {
return $this->belongsTo('App\Model\EmployeeType');
}
}
Run Code Online (Sandbox Code Playgroud)
EmployeeType
class EmployeeType extends Model {
}
Run Code Online (Sandbox Code Playgroud)
我不确定这是否是保持关系的正确方法.插入时我可以遵循以下两种方法:
1.设置ID
$emp = new Employee();
$emp->employee_type_id = $request->type_id;
$emp->name = $request->name;
$emp->save();
Run Code Online (Sandbox Code Playgroud)
2.设置关系
$emp->employeeTypes()->associate(EmployeeType::findOrFail($request->employee_types_id));
$emp->name = $request->name;
$emp->save();
Run Code Online (Sandbox Code Playgroud)
这两种方法都运行良好.
这两种插入方式有什么区别?
哪种方法最好?
我有文件模块,我想要列出所有文件,并带有缩略图预览.
如下,
我将文件存储在storage
文件夹中,无法访问http
.
那么如何为文档提供缩略图预览,尤其是图像和PDF.
laravel 5.1中是否有可用的包装?
我有客户端表和client_address信息表.我需要在更新下面给出的client.my模型类时更新两个表,
class Client extends Model {
public function addressInfo() {
return $this->hasOne('App\Model\ClientAddressInfo');
}
}
class ClientAddressInfo extends Model {
protected $table = 'client_address_info';
public function client() {
return $this->belongsTo('App\Model\Client');
}
}
Run Code Online (Sandbox Code Playgroud)
我的控制器更新如下.
$client = Client::findOrFail($id);
$client->name = rand(0, 1222222);
$address = ClientAddressInfo::where('client_id', '=', $id)->get();
$address->street = "new street";
$address->save();
Run Code Online (Sandbox Code Playgroud)
但它不起作用,请您解释更新模型及其相关模型的最佳实践.
我SoftDeletes
在Laravel5中使用模型.
但在某些情况下(保持历史记录没用),我想做物理删除(从表中删除行)而不是softDelete
.
class PaymentInvoices extends Model {
use SoftDeletes;
}
Run Code Online (Sandbox Code Playgroud)
有没有强制物理删除的方法?
在 laravel5 中,我捕获了app/Exceptions/Handler@render
函数中的所有错误,并且工作正常。下面给出的代码,
public function render($request, Exception $e) {
$error_response['error'] = array(
'code' => NULL,
'message' => NULL,
'debug' => NULL
);
if ($e instanceof HttpException && $e->getStatusCode() == 422) {
$error_response['error']['code'] = 422;
$error_response['error']['message'] = $e->getMessage();
$error_response['error']['debug'] = null;
return new JsonResponse($error_response, 422);
}
}
return parent::render($request, $e);
}
Run Code Online (Sandbox Code Playgroud)
但是在laravel5.1中,当表单验证失败时,会抛出异常错误消息422
。但它不是从 捕获 app/Exceptions/Handler@render
而是与 一起正常工作abort(422)
。
我该如何解决这个问题?
我想在 lumen 中使用电子邮件服务,根据他们的指南,我尝试illuminate/mail
通过在命令行中运行以下语句通过 Composer添加包。
composer require illuminate\mail
Run Code Online (Sandbox Code Playgroud)
现在出现以下错误,
[Invalid argument exception]
Could not find package illuminate\mail at any version for your minimum-stability (stable).Check package spelling or your minimum-stability
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?如何在 Lumen 中使用电子邮件服务?
我已按照Laravel 5.2文档的升级指南中的说明更新了composer.json文件,并运行了composer update.
一切都已正确更新,但作曲家在生成自动加载文件时转储了下面的错误.
Class 'Illuminate\Routing\ControllerService Provider' not found in /home/vagrant/Code/homework/vendor/laravel/framework /src/Illuminate/Foundation/ProviderRepository.php on line 146
Run Code Online (Sandbox Code Playgroud) 当我用MONTH(DATE)查询时,1
如果日期是一月,我想返回01
而不是1
,
即,0
通用标准的前缀。
January
-- 01
February
-- 02
March
-- 03
等,这怎么可能在MySQL中?
php ×13
laravel ×11
laravel-5 ×9
laravel-5.1 ×3
angularjs ×2
exception ×2
laravel-5.2 ×2
mysql ×2
composer-php ×1
date-format ×1
eloquent ×1
email ×1
lumen ×1
middleware ×1
model ×1
pdf ×1
preview ×1
session ×1
soft-delete ×1
sql ×1
upgrade ×1