我一直在尝试创建一个简单的用户管理系统,但在查询关系时不断遇到障碍.例如,我有用户和角色,每当我尝试对所有用户及其角色进行查询时,我都会收到错误消息.标题中的那个只是我遇到的最新版本.
我的用户和角色模型如下所示:
class Role extends Model
{
public function users()
{
$this->belongsToMany('\App\User', 'fk_role_user', 'role_id', 'user_id');
}
}
Run Code Online (Sandbox Code Playgroud)
class User extends Model
{
public function roles()
{
$this->belongsToMany('\App\Role', 'fk_user_role', 'user_id', 'role_id');
}
}
Run Code Online (Sandbox Code Playgroud)
我的迁移表中两者之间的多对多关系如下所示:
public function up()
{
Schema::create('role_user', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->unsigned()->nullable(); //fk => users
$table->integer('role_id')->unsigned()->nullable(); //fk => roles
$table->foreign('fk_user_role')->references('id')->on('users')->onDelete('cascade');
$table->foreign('fk_role_user')->references('id')->on('roles')->onDelete('cascade');
});
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试在控制器中获取他们关系的所有记录:
public function index()
{
$users = User::with('roles')->get();
return $users;
}
Run Code Online (Sandbox Code Playgroud)
所以我需要另一双眼睛告诉我这里我缺少什么?
我有一个支付系统,数据提交给第三方网站,而不是拖回...
当数据返回时它命中特定的url让我们说/ ok route.$_REQUEST['transaction'].
但由于laravel中间件,我得到令牌不匹配.第三方支付API无法生成令牌,所以我如何禁用它?只为这条路线?
还是有更好的选择?
Route::get('/payment/ok', 'TransactionsController@Ok');
Route::get('/payment/fail', 'TransactionsController@Fail');
public function Ok( Request $request )
{
$transId = $request->get('trans_id');
if ( isset( $transId ) )
{
return $transId;
}
}
Run Code Online (Sandbox Code Playgroud) 任何机构可以告诉我是什么样的区别主要
在属于关联和HasOne的关系雄辩.
我的Laravel 5网站正在使用1 GB磁盘空间的共享主机.但现在我有大约100 MB的日志文件.如何在Laravel 5中禁用日志文件?
我尝试了Laravel.com的入门指南.
创建任务有一章.有$request一个回调参数,在函数$request->all()中用于获取GET参数.但是,如果我执行该回调,我会得到错误
致命错误:调用未定义的方法Illuminate\Support\Facades\Request :: all()
这是我的代码:
Route::post('/task', function(Request $request) {
$validator = Validator::make($request->all(), [
'name' => 'required|max:255',
]);
if($validator->fails())
redirect('/')->withInput()->withErrors($validator);
$task = new Task();
$task->name = $request['name'];
$task->save();
return redirect('/');
});
Run Code Online (Sandbox Code Playgroud) 我对传入的POST请求使用以下日期验证.
'trep_txn_date' => 'date_format:"Y-m-d H:i:s.u"'
Run Code Online (Sandbox Code Playgroud)
这只允许这种日期,即2012-01-21 15:59:44.8
我也想允许没有TIME的日期,例如2012-01-21,当发送到mysql db时会自动存储为2012-01-21 00:00:00.0
有没有办法可以使用Laravel现有的验证规则来实现这一点.有没有办法在date_format规则中定义多种格式,如下所示.
'trep_txn_date' => 'date_format:"Y-m-d H:i:s.u","Y-m-d"' //btw this didn't work.
Run Code Online (Sandbox Code Playgroud)
谢谢,
ķ
我正在用Laravel 5.1构建一个简单的买卖应用程序.每个购买模型都有许多BuyDetail,它存储购买的商品数量和buy_price.我已经在Model上实现了表之间的关系.
class Buy extends Model
{
#Eloquent relationships
public function supplier()
{
return $this->belongsTo('App\Supplier');
}
public function buyDetails()
{
return $this->hasMany('App\BuyDetail');
}
}
Run Code Online (Sandbox Code Playgroud)
我想计算每次购买的总价.使用Eloquent ORM计算总价的最佳方法是什么?
现在我只是这样实现它:
@foreach($buys as $key => $value)
<?php
$total = 0;
?>
@foreach($value->buyDetails as $k => $bD)
<?php
$total += ($bD['buy_price']*$bD['qty']);
?>
@endforeach
<tr>
<td>{{$value->ref_number}}</td>
<td>{{$value->suplier->name}}</td>
<td>{{$value->created_at}}</td>
<td>{{$value->buyDetails->count()}}</td>
<td>{{$total}}</td>
<td>
<a href="" class="btn btn-default btn-sm" title="show">Detail</a>
<a href="" class="btn btn-primary btn-sm" title="edit">Edit</a>
<a href="" class="btn btn-danger btn-sm" title="delete">Delete</a>
</td>
</tr>
@endforeach
Run Code Online (Sandbox Code Playgroud) laravel中的Cache类具有诸如get('itemKey')之类的方法来从缓存中检索项目,并记住('itemKey',['myData1','myData2'])以将项目保存在缓存中.
还有一种方法可以检查缓存中是否存在项目:Cache :: has('myKey');
有没有办法(使用基于文件的缓存驱动程序时)获取缓存中所有项目的列表?
例如,某些可能被命名为"Cache :: all()"的东西会返回:
[
'itemKey' => [
'myData1',
'myData2'
],
'myKey' => 'foo'
]
Run Code Online (Sandbox Code Playgroud)
我能想到的唯一方法是使用Cache :: has()方法遍历所有可能的键名.即aaa,aab,aac,aad ......但当然,这不是解决方案.
我在文档或描述这样的函数的API中看不到任何内容,但我认为不相信一个必须存在是不合理的.
我有Foo属性使用getFooAttribute方法在显示之前格式化它,但在某些地方,我需要原始属性..所以我该怎么做
我是Laravel框架的新手,现在在尝试更新记录的用户信息时遇到问题.
路线:
Route::post('/user/{id}', function (Request $request, $id) {
return App\Http\Controllers\UsersController::update($request, $id);
});
public static function update($request, $id)
{
$user = User::find($id);
$user->name = $request->input('name');
...
$user->save();
...
}
Run Code Online (Sandbox Code Playgroud)
错误:
UsersController.php第24行中的FatalErrorException:调用未定义的方法Illuminate\Support\Facades\Request :: input()
laravel ×10
laravel-5 ×10
php ×10
eloquent ×3
laravel-5.1 ×3
caching ×1
date-format ×1
key ×1
mysql ×1