小编Nee*_*eel的帖子

迁移外键与Laravel中雄辩的关系

在Laravel 5.1中,我可以看到表列关系可以通过两种方式设置:

1)在迁移表中定义外键.

2)定义模型中的雄辩关系.

我已阅读文件,我仍然对以下内容感到困惑:

  1. 我是否需要同时使用或仅需要1个?

  2. 同时使用两者是不对的吗?或者它是否使其多余或引起冲突?

  3. 使用Eloquent关系而不提及迁移列中的外键有什么好处?

  4. 有什么不同?

这些是我现在的代码.如果我需要删除我在迁移文件中设置的外键,我仍然不清楚.

移民:

  public function up()
    {   

       Schema::create('apps', function (Blueprint $table) {
          $table->increments('id');
          $table->string('app_name');
          $table->string('app_alias');
          $table->timestamps();
          $table->engine = 'InnoDB';
       });

      // This is the second Migration table
      Schema::create('app_roles', function (Blueprint $table) {
          $table->increments('id');
          $table->integer('app_id')->unsigned()->index();
          $table->integer('user_id')->unsigned()->index();
          $table->integer('role_id')->unsigned()->index();
          $table->engine = 'InnoDB';

          $table->unique(array('app_id', 'user_id'));

          $table->foreign('app_id')
                ->references('id')
                ->on('apps')
                ->onDelete('cascade');

          $table->foreign('user_id')
                ->references('id')
                ->on('users')
                ->onDelete('cascade');

          $table->foreign('role_id')
                ->references('id')
                ->on('roles')
                ->onDelete('cascade');
        });     
    }
Run Code Online (Sandbox Code Playgroud)

具有雄辩关系的模型:

// App Model
class App extends Model
{

     public function appRoles() {
         return $this->hasMany('App\Models\AppRole');
     }
} …
Run Code Online (Sandbox Code Playgroud)

php mysql laravel eloquent laravel-5

26
推荐指数
2
解决办法
9949
查看次数

Laravel 5.1在复制时创建或更新

在Laravel 5.1中,对于MySQL插入,我想查看记录是否已经存在并在重复时更新,或者如果不存在则创建新的.

我已经搜索了那里的答案是旧的laravel版本.在其中一个老话题中,它说updateOrCreate()去年核心增加了一种新方法.但是当我尝试这个时,我收到了错误:

Integrity constraint violation: 1062 Duplicate entry '1' for key 'app_id' 
Run Code Online (Sandbox Code Playgroud)

这是我使用的查询:

AppInfo::updateOrCreate(array(
    'app_id' => $postData['appId'],
    'contact_email' => $postData['contactEmail']
));
Run Code Online (Sandbox Code Playgroud)

app_id该表中的唯一外键在哪里,我想更新记录(如果存在)或创建新记录.我试过搜索5.1文档但找不到我需要的信息.有人可以在这里指导我吗...

query-builder laravel eloquent laravel-5

25
推荐指数
4
解决办法
4万
查看次数

Laravel 5.3通知与Mailable

关于是否使用Laravel的NotificationMailable类,我有点困惑.根据我的理解,Mailables仅用于发送电子邮件,而通知可用于发送电子邮件和短信.在我的应用程序中,我暂时没有计划发送短信通知,所以如果我在这种情况下应该使用Mailable类,我很困惑.我的问题是:

  1. 如果我只是要发送电子邮件通知,我使用Mailables而不是Notifications更好吗?

  2. 如果每封电子邮件都有不同的html布局,那么Mailable会是更好的选择吗?

  3. 即使所有电子邮件都是通知电子邮件,使用Mailables而不是Notifications发送它们仍然有意义吗?

有人可以告诉我这两者之间的主要区别,以及我们应该如何决定在Laravel 5.3中发送电子邮件时选择哪种方法.

laravel laravel-mail laravel-5.3 laravel-notification

25
推荐指数
2
解决办法
6197
查看次数

如何以单一形式使用多个Angular UI Bootstrap Datepicker?

我有一个表格,我需要有2个或更多日期字段用于不同的事情.我尝试了Angular UI Bootstrap,当我在表单中只有一个日期字段时,它工作正常.但是,如果我有多个日期字段,它就会停止工作,我不知道更简单的方法让它工作.

这是我的HTML示例:

 <label>First Date</label>  
    <div class="input-group">
     <input type="text" class="form-control" datepicker-popup="{{format}}" name="dt" ng-model="formData.dt" is-open="opened" datepicker-options="dateOptions" ng-required="true" close-text="Close" />
      <span class="input-group-btn">
        <button class="btn btn-default" ng-click="open($event)"><i class="glyphicon glyphicon-calendar"></i></button>
      </span>
    </div>      

 <label>Second Date</label>  
    <div class="input-group">
     <input type="text" class="form-control" datepicker-popup="{{format}}" name="dtSecond" ng-model="formData.dtSecond" is-open="opened" datepicker-options="dateOptions" ng-required="true" close-text="Close" />
      <span class="input-group-btn">
        <button class="btn btn-default" ng-click="open($event)"><i class="glyphicon glyphicon-calendar"></i></button>
      </span>
    </div>     
Run Code Online (Sandbox Code Playgroud)

我的JS是:

myApp.controller('DatePickrCntrl', function ($scope) {

      $scope.today = function() {
        $scope.formData.dt = new Date();
      };
      $scope.today();

      $scope.showWeeks = true;
      $scope.toggleWeeks = function () {
        $scope.showWeeks = ! …
Run Code Online (Sandbox Code Playgroud)

javascript datepicker twitter-bootstrap angularjs angular-ui-bootstrap

24
推荐指数
3
解决办法
4万
查看次数

当变量为空时,Laravel 5.3验证失败

由于将laravel从5.1升级到5.3,我在验证方面遇到了一些奇怪的问题.

当我发布这样的数据时:

firstName    null
Run Code Online (Sandbox Code Playgroud)

验证规则如下:

$validator = Validator::make($postData, [
              'firstName'           => 'string|max:255',
              'lastName'            => 'string|max:255'
            ]);
Run Code Online (Sandbox Code Playgroud)

上面的消息失败了"The XYZ must be a string.".我不明白的是:

  1. 为什么验证失败时未设置为required?意思是,它应该忽略它,如果值为空则不抛出错误,对吧?

  2. 如果将值设置为null?,为什么验证失败?

  3. 为什么在根本没有发送参数时验证失败?(就像lastName根本没有张贴的那样)

Laravel 5.3验证中有什么变化吗?

validation laravel laravel-validation laravel-5.3

19
推荐指数
2
解决办法
2万
查看次数

如何在PHP中将ISO8601转换为日期格式

如何转换(ISO8601格式): 2014-03-13T09:05:50.240Z

对此(以MySQL DATE格式): 2014-03-13

在PHP?

php mysql sql datetime date

18
推荐指数
3
解决办法
2万
查看次数

为Angular Directive添加多个'require'选项

通常在Directives中,require: 'ngModel'如果我想将范围传递给它,我会使用它.这很好用.但我现在正在创建一个指令,该指令创建5个不同的HTML元素,每个元素都有不同的ngModel,它们是从父元素传递的.需要作为属性传递的ngmodel是ngModel1, ngModel2, ngModel3, ngModel4, ngModel5.如何require在指令内的条件中添加多个选项?

我试过这些并且它不起作用:

require: ['ngModel1', 'ngModel2', 'ngModel3', 'ngModel4', 'ngModel5'],
Run Code Online (Sandbox Code Playgroud)

require: {'ngModel1', 'ngModel2', 'ngModel3', 'ngModel4', 'ngModel5'},
Run Code Online (Sandbox Code Playgroud)

require: 'ngModel1', 'ngModel2', 'ngModel3', 'ngModel4', 'ngModel5',
Run Code Online (Sandbox Code Playgroud)

require: 'ngModel1, ngModel2, ngModel3, ngModel4, ngModel5'},
Run Code Online (Sandbox Code Playgroud)

如何添加多个需求选项?

编辑:

HTML代码:

<div get-vehicles-checkbox
            cars-ng-model="formData.cars"           
            bikes-ng-model="formData.bikes"         
            trucks-ng-model="formData.trucks"           
            van-ng-model="formData.van"         
            bus-ng-model="formData.bus"     
></div>
Run Code Online (Sandbox Code Playgroud)

指示:

app.directive('getVehiclesCheckbox', function($compile) { 
  return {
    restrict: 'A',
    replace:true,
    // require: ?
    scope: {            
      carsNgModel: '=',
      bikesNgModel: '=',
      trucksNgModel: '=',
      vanNgModel: '=',
      busNgModel: '='
    },

    controller: 'SomeController',

    link: function(scope, …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-directive angularjs-scope angular-directive

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

ng-bind-html不适用于输入标记

我试图在范围变量中存储HTML,然后在模板视图中使用它.当我正在阅读如何以棱角分明的方式做这件事时,我遇到了ng-bind-html.在那里我注意到,当我用,等等绑定html标签时<a>,<strong>它的工作原理.但我无法为其添加<input>标签.

这意味着,这有效:

$scope.myHtml = '<strong>This is <a hreaf="#">Something</a></strong>';
Run Code Online (Sandbox Code Playgroud)

模板:

<p ng-bind-html="myHtml"> </p>
Run Code Online (Sandbox Code Playgroud)

但这不起作用:

$scope.myHtml = '<input type="text" />';
Run Code Online (Sandbox Code Playgroud)

模板:

<p ng-bind-html="myHtml"> </p>
Run Code Online (Sandbox Code Playgroud)

以上仅是用于演示目的的简化示例.我的问题是:

1)标签不适用于ng-bind-html指令吗?

2)如果没有,我如何html绑定输入标签,以便我可以将其插入视图?

javascript angularjs ng-bind-html ng-bind ngsanitize

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

如何防止直接访问Laravel路由(即非ajax请求)

在我的项目中,我使用Laravel纯粹作为后端api,所有前端都由Angular javascript处理.目前,Laravel路线可以直接访问,它会扼杀浏览器中显示的Json中的所有数据.我想对它进行限制,因此Laravel只响应Ajax请求而没有别的.

在这里阅读了这篇文章,该文章为Laravel 4提供了一个解决方案,即通过添加限制filter.php.但是从Laravel 5.1开始,不再使用过滤器,我相信中间件可以用来做同样的事情.但是,我不知道如何在过滤器到中间件的过程中更改Laravel 4解决方案.

有人可以分享您如何防止直接访问Laravel 5.1路由的想法吗?

Laravel 4解决方案使用filter.php:在filter.php声明此过滤器:

Route::filter('isAJAX', function()
{
    if (!Request::AJAX()) return Redirect::to('/')->with(array('route' => Request::path()));
});
Run Code Online (Sandbox Code Playgroud)

然后将您只想通过AJAX访问的所有路由放入一个组中.在您的routes.php中:

Route::group(array('before' => 'isAJAX'), function()
{
    Route::get('contacts/{name}', ContactController@index); // Or however you declared your route

    ... // More routes
});
Run Code Online (Sandbox Code Playgroud)

laravel laravel-routing laravel-filters laravel-middleware laravel-5.1

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

如何在Joomla中集成AngularJs App

我是Angular和Joomla的新手,我正在学习atm.我想知道的是 - 是否可以在Joomla中集成Angular JS Application?从我读到的关于Joomla的内容来看,我理解这个cms可以轻松地从管理面板创建文章和管理内容和菜单.但是,由于Angular JS应用程序本身就是一个应用程序,因此文章页面无法使用.那么人们如何整合这个呢?

关于Angular App:

我的角色应用程序有点类似于Dan Wahlin的客户经理应用程序,该应用程序具有针对此应用程序的单独MySQL数据库,并使用php在Apache上进行服务器端处理.

尝试将Angular JS与Joomla集成的原因:

主要是,Joomla提供用户注册功能,用户权限管理等.开箱即用,我打算安装会员扩展.我只希望付费会员可以访问Angular App.这就是我想要实现的目标.

到目前为止我研究过的内容:

1)我查看了directPHP扩展,看看是否可以使用此ext插入Angular JS应用程序.但我认为这不会起作用,也不是正确的方法.

2)在搜索更多内容时,我遇到了这个Joomla教程,我不确定这是否适合它."开发MVC组件":http://docs.joomla.org/Developing_a_Model-View-Controller_%28MVC%29_Component_for_Joomla!2.5

如果有人可以指导我这些将极大地帮助我:

1)概述了如何将Angular App与Joomla集成,需要做什么,需求等......我理解解释这将超出SO的范围,但这里的一些指示将有所帮助.

2)向我展示我需要开始阅读的方式,以实现这一目标.我尝试使用谷歌搜索这个主题,我找不到任何教程,展示如何集成Angular和Joomla.

javascript php joomla joomla-extensions angularjs

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