标签: ardent

如何在Laravel中使用Sentry和Ardent?

在我的模型中,我使用Ardent进行自我验证,但我有一个模型,我还需要使用Sentry进行身份验证.所以我也需要扩展Ardent和Sentry,但我不能,因为PHP中没有多重继承.我尝试用特征来做,但特征不能延伸.我几乎不需要两个课程,有没有办法可以同时使用它们?

php laravel ardent

6
推荐指数
1
解决办法
616
查看次数

Laravel 4 - Ardent - 密码确认不匹配

所以我正在Laravel 4中实现Ardent的实现,我似乎无法理清为什么这个密码确认不匹配.

我的用户控制器看起来像这样:

use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;
use LaravelBook\Ardent\Ardent;

class User extends Ardent implements UserInterface, RemindableInterface {

public static $rules = array(
  'first_name'            => 'required|min:2|max:80|alpha',
  'last_name'             => 'required|min:2|max:80|alpha',
  'email'                 => 'required|between:3,64|email|unique:users',
  'postal_code'           => 'required|min:5|max:80',
  'password'              => 'required|between:4,20|confirmed',
  'password_confirmation' => 'same:password',
  'timezone_id'           => 'required|numeric',
);

public $autoPurgeRedundantAttributes = true;
Run Code Online (Sandbox Code Playgroud)

然后在模型存储操作中,我有以下内容:

$user = new User(Input::all());
if($user->save()) {
  // does a bunch of stuff
}
Run Code Online (Sandbox Code Playgroud)

但最后密码确认警告是持久的,我似乎无法理清为什么?如果我从密码字段中取出已确认的选项,则一切正常.我似乎无法让他们明白他们是一样的.我已经在我测试过的下面包含了一个示例var_dump,并确认它没有通过验证.

array(10) { 
  ["_token"]=> string(40) "726lKBQgckGuLBxmJZ7Kjq4kzzXqADDqv3ZSnMOE" 
  ["first_name"]=> string(3) "asd" 
  ["last_name"]=> string(3) "asd" 
  ["email"]=> string(14) "asdasd@asd.com" 
  ["postal_code"]=> string(7) "XXX …
Run Code Online (Sandbox Code Playgroud)

php laravel-4 ardent

3
推荐指数
1
解决办法
7764
查看次数

在 Blade 中调用 @if ($errors->has()) 时,调用数组上的成员函数 has()

我正在尝试使用 Ardent 从刀片模板中的表单返回错误。这是我在控制器中使用的功能:

public function store()
{
  $subscriber = new Subscriber;

  $subscriber->first_name = Input::get('first_name');
  $subscriber->last_name = Input::get('last_name');
  $subscriber->email = Input::get('email');

  if(!$subscriber->save())
  {
    return Redirect::to('/admin/subscriber/create')->with('errors', $subscriber->errors()->all());
  }

  return Redirect::to('/admin/subscriber')->with('status', 1);
}
Run Code Online (Sandbox Code Playgroud)

我在模型中的热心规则:

public static $rules = array(
  'email' => 'required|email|unique:users',
  'first_name' => 'required',
  'last_name' => 'required',
);

public static $customMessages = array(
  'first_name.required' => 'First name is required.',
  'last_name.required' => 'Last name is required.',
  'email.required' => 'Email is required.',

  'email.email' => 'Use a real email address!',
  'email.unique' => 'This email address …
Run Code Online (Sandbox Code Playgroud)

validation laravel laravel-4 ardent

2
推荐指数
1
解决办法
6898
查看次数

Ardent + Laravel,自动水合物关系

我用lavarel和热情的包装.

当我想要更新一行时,我遇到了一些问题.

我有2个模型客户端和地址相关的morphone关系.

这种关系很好,当我想得到一个客户端这一行返回预期的结果:

Client::with('address')->find($id);
Run Code Online (Sandbox Code Playgroud)

但我无法理解如何使用干净的解决方案更新客户端.有人可以回答这些问题:

  1. 有了Ardent你怎么能自动修复相关模型?
  2. 当您更新一些数据时,lavarel的最佳做法是什么?使用更新方法吗?使用保存?用推?填写所有型号?使用自动水合物?

当我在我的更新方法中记录Input :: all()时,我得到了:

[2014-05-31 15:52:56] production.INFO: {"id":983,"firstName":"Susanne","lastName":"Adam","birthDate":"18\/06\/1982","inscriptionDate":"08\/09\/2013","status":3,"created_at":"2014-05-31 14:26:25","updated_at":"2014-05-31 14:26:25","email":"bernard.alix@free.fr","address":{"id":983,"address":"avenue Etienne","address2":"","ville":"Cordierboeuf","cp":"25 10","phone":"0403983157","mobile":"+33 (0)3 0","addressable_id":983,"addressable_type":"Client","created_at":"2014-05-31 14:27:58","updated_at":"2014-05-31 14:27:58"}} [] []
Run Code Online (Sandbox Code Playgroud)

如您所见,地址数据位于客户端数据中.

3.当我使用更新,保存或推送(eloquent的方法)时,雄辩不明白他应该更新地址模型然后更新相关的客户端模型.我的数据格式不是很好吗?

谢谢.

更新:

当我执行Log :: info(Input :: all())时,我在控制器中获得以下json数据:

[2014-06-01 18:10:46] production.INFO: {"id":284,"firstName":"Andr\u00e9e","lastName":"Adam","birthDate":"23\/07\/1944","inscriptionDate":"22\/11\/2013","status":2,"created_at":"2014-06-01 15:41:22","updated_at":"2014-06-01 18:06:44","email":"monique17@normand.com","address":{"id":284,"streetAddress":"93, avenue Lefort","streetAddress2":"","city":"Boulay-sur-Leger","zipCode":"14054","phone":"09 51 03 1","mobile":"+33 6 00 6","addressable_id":284,"addressable_type":"Client","created_at":"2014-06-01 15:42:50","updated_at":"2014-06-01 18:06:44"}} [] []
Run Code Online (Sandbox Code Playgroud)

随着ardent的自动水化不起作用...客户端成功自动水合但地址不成功,可能是由于它们之间的多态关系(一对一).

我尝试用这种方式填充我的模型:

$client = Client::with('address')->find($id);
$client->update(Input::except('address'));
$client->address->update(Input::only('address'));
Run Code Online (Sandbox Code Playgroud)

但是这不起作用,因为Input :: only('address')给出错误的形成数据,当我记录这个时我得到了:

Log::info(Input::except('address'));
Log::info(Input::only('address'));

//output 

[2014-06-01 18:20:34] production.INFO: {"id":284,"firstName":"Andr\u00e9e","lastName":"Adam","birthDate":"23\/07\/1944","inscriptionDate":"22\/11\/2013","status":2,"created_at":"2014-06-01 15:41:22","updated_at":"2014-06-01 18:10:46","email":"monique17@normand.com"} [] []
[2014-06-01 18:20:34] production.INFO: {"address":{"id":284,"streetAddress":"93, avenue Lefort","streetAddress2":"","city":"Boulay-sur-Leger","zipCode":"14054","phone":"09 51 …
Run Code Online (Sandbox Code Playgroud)

php laravel eloquent ardent

1
推荐指数
1
解决办法
3120
查看次数

Laravel'Form :: model'不会填充我的编辑表单

我正在制作一个表单来编辑数据库中的现有条目.我使用Form :: model方法来做到这一点,但它似乎不起作用.这些田地空无一人.

ServerController.php

/**
* Editing servers
*/
public function edit($name)
{
  $server = Server::find($name);
  $keywords = ($server->getKeywords()) ? $server->getKeywords() : array();
  $countries = $this->getCountries();
  return View::make('server/edit', array('server' => $server, 'countries' => $countries));
}

public function update($name) 
{
  $server = Server::find($name);
  // Did it succeed?
  if($server->save()) {
    Session::flash('success', 'You server was edited!');
    return Redirect::route('server.view', array($name));
  }

  // Did not validate
  if(Input::get('keywords')) {
    $keywords = Input::get('keywords');
    Session::flash('keywords', $keywords);
  }
  Session::flash('danger', "<b>Oops! There were some problems processing your update</b><br/>" . implode("<br/>", …
Run Code Online (Sandbox Code Playgroud)

php model populate laravel ardent

0
推荐指数
1
解决办法
1410
查看次数

标签 统计

ardent ×5

laravel ×4

php ×4

laravel-4 ×2

eloquent ×1

model ×1

populate ×1

validation ×1