我有laravel的问题。我创建了名为Zlecenia的模型,需要使用自定义变量获取数据。我需要为此模型添加url值。
我的控制器
$zlecenia = new Zlecenia();
$q = $zlecenia->with('users')->withLinks()
->orderBy('zlecenia.id', 'desc')
->where('active', 1)
->where('end',0)
->where('kategorie', '>', 0)
->take(5)
->get();
我的模特
public function withLinks($id,$slug){
return route('ZleceniaZlecenie',['id'=>$id,'slug'=>$slug]);
}
如何获取其后获取视图的数据:
{
"id": 21,
"created_at": "2017-08-01 08:51:08",
"updated_at": "2017-08-01 08:51:08",
"name": "fasd asdf",
"active": 1,
"user_id": 3,
"description": "asd fasdf",
"winner_id": null,
"end": 0,
"kategorie": 4,
"link": "slugValue",
"users": {
"id": 3,
"name": "test",
"email": "kontakt@teamwant.pl",
},
"url": "http://127.0.0.1:8000/test/3/slugValue"
},
如果你能看到我添加一个" url"值和这个值我需要从函数withLinks()生成它。
withLinks中的slug ==来自model / db的链接值
id in withLinks == id from model / db
答案 0 :(得分:0)
首先在控制器中进行活动记录查询是一种不好的做法,如果我理解了问题你需要在视图中路径两个模型(模型数组),首先:
public static function getSomeModel() {
return self::with('users')
->orderBy('zlecenia.id', 'desc')
->where('active', 1)
->where('end',0)
->where('kategorie', '>', 0)->take(5)->get();
}
第二 - 网址
控制器可以是这样的:
public function getSomeRoute() {
$input = Input::all();
isset($input["id"]) $id = $input["id"];
isset($input["slug"]) $slug = $input["slug"];
$models = ["SomeModel" => SomeModel::getSomeModel(), "url" => "http://example.com/".$id."/".$slug];
return view("view", ["models" => $models]);
}
答案 1 :(得分:0)
您可以使用select
功能动态创建价值持有者。
我来自Codeigniter背景,但你可以得到一般的想法。
$zlecenia = new Zlecenia();
$q = $zlecenia->with('users')
->select('users.*', DB::raw("CONCAT('http://127.0.0.1:8000/test/', '{$id}/', '{$slug}') AS url"))
->orderBy('zlecenia.id', 'desc')
->where('active', 1)
->where('end',0)
->where('kategorie', '>', 0)
->take(5)
->get();