我能';我在laravel 5.1中编辑时无法获取数据
当我被创建时,我的通讯簿中有很多用户,一切都很好(ok) 但是当我在没有分配用户的情况下编辑表单中的每个数据时。 我如何在编辑表单中获取用户??这是我的通讯录控制器我能';我在laravel 5.1中编辑时无法获取数据,laravel,model,eloquent,laravel-5.1,laravel-blade,Laravel,Model,Eloquent,Laravel 5.1,Laravel Blade,当我被创建时,我的通讯簿中有很多用户,一切都很好(ok) 但是当我在没有分配用户的情况下编辑表单中的每个数据时。 我如何在编辑表单中获取用户??这是我的通讯录控制器 i have address Book table and user table i am assigning namespace-App\Http\Controllers; 使用\Http\Request; 使用App\Http\Requests\AddressRequest; 使用App\Http\Requests; 使用A
i have address Book table and user table i am assigning
namespace-App\Http\Controllers;
使用\Http\Request;
使用App\Http\Requests\AddressRequest;
使用App\Http\Requests;
使用App\Models\Address;
使用App\Models\User;
使用App\Http\Controllers\Controller`在这里输入代码`
使用Lightning\Pagination\Paginator;
使用Auth;
使用数据库;
使用会话;
类地址控制器扩展控制器
{
/**
*显示资源的列表。
*
*@返回响应
*/
公共功能索引(请求$Request)
{
会话::忘记('searchaddress');
$addresses=地址::订购人(“公司名称”);
$company_name=$request->input('company_name');
如果(!空($company_name)){
//$addresses->where('company_name','LIKE','%.$company_name.'%');
$addresses->where('company_name','LIKE','%.$company_name.'%');
会话::set('searchaddress',$company\u name);
}
$addresses=$addresses->paginate(5);
返回视图('address.index',压缩('addresses');
}
/**
*显示用于创建新资源的表单。
*
*@返回响应
*/
公共函数create()
{
$users=User::列出('first_name','id');
返回视图('address.create',compact('users');
}
/**
*将新创建的资源存储在存储器中。
*
*@返回响应
*/
公共函数存储(AddressRequest$request)
{
$address=address::create($request->all());
$firstname=Auth::user()->first\u name;
$lastname=Auth::user()->last_name;
$address->created_by=$firstname.“.”$lastname;
$address->users()->attach($request->input('user_list');
$address->save();
返回重定向('/addresses');
}
/**
*显示指定的资源。
*
*@param int$id
*@返回响应
*/
公共活动展览($id)
{
$address=地址::查找($id);
返回视图('address.show',compact('address');
}
/**
*显示用于编辑指定资源的表单。
*
*@param int$id
*@返回响应
*/
公共功能编辑($id)
{$users=User::list('first_name','id');
$address=地址::findorFail($id);
返回视图('address.edit',compact('address','users');
}
/**
*更新存储中的指定资源。
*
*@param int$id
*@返回响应
*/
公共函数更新(AddressRequest$request$id)
{
$address=地址::findOrFail($id);
$address->update($request->all());
$address->users()->sync($request->input('user_list'));
返回重定向('/addresses');
}
/**
*从存储器中删除指定的资源。
*
*@param int$id
*@返回响应
*/
公共功能销毁($id)
{
$address=地址::查找($id);
$address->delete();
返回重定向('/addresses');
}
}
这就是我的通讯录模型
您有belongTomany关系,因此在编辑操作中,您还应该获得如下当前地址用户
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests\AddressRequest;
use App\Http\Requests;
use App\Models\Address;
use App\Models\User;
use App\Http\Controllers\Controller;`enter code here`
use Illuminate\Pagination\Paginator;
use Auth;
use DB;
use Session;
class AddressesController extends Controller
{
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index(Request $request)
{
Session::forget('searchaddress');
$addresses = Address::orderby('company_name');
$company_name = $request->input('company_name');
if(!empty($company_name)) {
//$addresses->where('company_name','LIKE','%'.$company_name.'%');
$addresses->where('company_name','LIKE','%'.$company_name.'%');
Session::set('searchaddress', $company_name);
}
$addresses = $addresses->paginate(5);
return view('address.index',compact('addresses'));
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
$users = User::lists('first_name','id');
return view('address.create',compact('users'));
}
/**
* Store a newly created resource in storage.
*
* @return Response
*/
public function store(AddressRequest $request)
{
$address = Address::create($request->all());
$firstname = Auth::user()->first_name;
$lastname = Auth::user()->last_name;
$address->created_by =$firstname." ".$lastname;
$address->users()->attach($request->input('user_list'));
$address->save();
return redirect('/addresses');
}
/**
* Display the specified resource.
*
* @param int $id
* @return Response
*/
public function show($id)
{
$address = Address::find($id);
return view('address.show',compact('address'));
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return Response
*/
public function edit($id)
{ $users = User::lists('first_name','id');
$address = Address::findorFail($id);
return view('address.edit',compact('address','users'));
}
/**
* Update the specified resource in storage.
*
* @param int $id
* @return Response
*/
public function update( AddressRequest $request ,$id)
{
$address = Address::findOrFail($id);
$address->update($request->all());
$address->users()->sync($request->input('user_list'));
return redirect('/addresses');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return Response
*/
public function destroy($id)
{
$address = Address::find($id);
$address->delete();
return redirect('/addresses');
}
}
and that is my AddressBook Model
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Address extends Model
{
protected $fillable = [
'created_by',
'company_name',
'phone',
'email', 'address','comment'
];
public function users()
{
return $this->belongsToMany('App\Models\User')->withTimestamps();
}
public function getUserListAttribute()
{
return $this->users->lists('id');
}
}
[![enter image description here][1]][1]
[1]: http://i.stack.imgur.com/D4jXQ.png
isset($address_users) ? $address_users : null
然后在select中的视图中,您应该将$users和$address_用户的数组相交,以获得所选选项
public function edit($id)
{ $users = User::lists('first_name','id');
$address = Address::findorFail($id);
$address_users = $address->users->lists('id')->toArray();
return view('address.edit',compact('address','users', 'address_users'));
}
避
{!! Form::select('user_list[], $users, isset($address_users) ? $address_users : null, ['id' => 'users_list', 'class' => 'form-control', 'multiple']) !!}
您可以在create方法中定义空的address_users数组,并按如下方式执行
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests\AddressRequest;
use App\Http\Requests;
use App\Models\Address;
use App\Models\User;
use App\Http\Controllers\Controller;`enter code here`
use Illuminate\Pagination\Paginator;
use Auth;
use DB;
use Session;
class AddressesController extends Controller
{
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index(Request $request)
{
Session::forget('searchaddress');
$addresses = Address::orderby('company_name');
$company_name = $request->input('company_name');
if(!empty($company_name)) {
//$addresses->where('company_name','LIKE','%'.$company_name.'%');
$addresses->where('company_name','LIKE','%'.$company_name.'%');
Session::set('searchaddress', $company_name);
}
$addresses = $addresses->paginate(5);
return view('address.index',compact('addresses'));
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
$users = User::lists('first_name','id');
return view('address.create',compact('users'));
}
/**
* Store a newly created resource in storage.
*
* @return Response
*/
public function store(AddressRequest $request)
{
$address = Address::create($request->all());
$firstname = Auth::user()->first_name;
$lastname = Auth::user()->last_name;
$address->created_by =$firstname." ".$lastname;
$address->users()->attach($request->input('user_list'));
$address->save();
return redirect('/addresses');
}
/**
* Display the specified resource.
*
* @param int $id
* @return Response
*/
public function show($id)
{
$address = Address::find($id);
return view('address.show',compact('address'));
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return Response
*/
public function edit($id)
{ $users = User::lists('first_name','id');
$address = Address::findorFail($id);
return view('address.edit',compact('address','users'));
}
/**
* Update the specified resource in storage.
*
* @param int $id
* @return Response
*/
public function update( AddressRequest $request ,$id)
{
$address = Address::findOrFail($id);
$address->update($request->all());
$address->users()->sync($request->input('user_list'));
return redirect('/addresses');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return Response
*/
public function destroy($id)
{
$address = Address::find($id);
$address->delete();
return redirect('/addresses');
}
}
and that is my AddressBook Model
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Address extends Model
{
protected $fillable = [
'created_by',
'company_name',
'phone',
'email', 'address','comment'
];
public function users()
{
return $this->belongsToMany('App\Models\User')->withTimestamps();
}
public function getUserListAttribute()
{
return $this->users->lists('id');
}
}
[![enter image description here][1]][1]
[1]: http://i.stack.imgur.com/D4jXQ.png
isset($address_users) ? $address_users : null
你也可以把你地址的代码贴出来。编辑视图吗?我听不懂你在说什么?你能告诉我布雷弗利吗?这是我的观点。如何写下视图中的代码???我编辑了我的答案。您可以根据自己的需要使用不同的方法,但我向您展示了编辑方法的确切方式哦,对不起,您必须只传递$adress\u用户作为第三个参数isset($adress\u用户)$address_用户:Null我想您错过了表单::select中的coteion('),但我找不到此COTEP请再次编辑您的答案。因为我不明白您在说什么。。。。很抱歉:(