Laravel меняет внутреннее соединение через пользовательский ввод - PullRequest
0 голосов
/ 23 мая 2018

Мой план следующий.У меня есть это внутреннее соединение:

SELECT cd.fk_lend_id,cd.serialnumber ,customers.name,cd.created_at
FROM cd
INNER JOIN customers ON cd.fk_lend_id = customer.lend_id
Where cd.fk_lend_id = 00000000;

Вот как это будет выглядеть в Laravel:

$scores = DB::table('cd')
->join('cd', 'cd.fk_lend_id', '=', 'customer.lend_id')
->select('cd.fk_lend_id','cd.serialnumber','users.name', 'cd.created_at')
->where('cd.fk_lend_id',00000000)
->get();

(созданный_кат означает время, в течение которого клиент предоставляет компакт-диск)

-> где ('cd.fk_lend_id', 00000000) <- Нули должны быть заменены пользовательским вводом из поля ввода из представления, и после ввода это должно быть перенаправлено, возможно ли это? </p>

Если это возможно, кто-нибудь может дать мне совет, как это сделать?

(Правка)

Функция "yourcds":

public function yourcds(Request $request, cds $cd)
{
    $this->middleware('guest');

    $user_input = $request->userInput
    $scores = DB::table('cd')
    ->join('customers', 'cd.fk_lend_id', '=', 'customer .lend_id')
    ->select('cd.fk_lend_id','cd.serialnumber','users.name', 'cd.created_at')
    ->where('cd.fk_lend_id',$request->$user_input)
    ->get();

    $cds = cd::latest()->paginate(20);

    return view('cd.yourcds',compact('cd'))
        -> with('i', (request()->input('page', 1) - 1) * 20);
}

Возврат"функция:

    public function return(cds $cd)
{

  return view('cd.return',compact('cd'));
}

Ответы [ 3 ]

0 голосов
/ 23 мая 2018
function <controller-name>(Request $request){
$myfield = $request->input('<formfieldname>');
$scores = DB::table('cd')
->join('cd', 'cd.fk_lend_id', '=', 'customer.lend_id')
->select('cd.fk_lend_id','cd.serialnumber','users.name', 'cd.created_at')
->where('cd.fk_lend_id',$myfield)
->get();
}
0 голосов
/ 23 мая 2018

Сначала вы должны получить пользовательский ввод с помощью

$user_input = $request->userInput

Затем просто введите предложение where

$scores = DB::table('cd')
        ->join('cd', 'cd.fk_lend_id', '=', 'customer.lend_id')
        ->select('cd.fk_lend_id','cd.serialnumber','users.name', 'cd.created_at')
        ->where('cd.fk_lend_id', $userInput)
->get();

Все, кавычки не нужны

РЕДАКТИРОВАТЬ

с вашей функцией, вернуть представление с формой:

public function return(cds $cd) {
    return view('cd.return',compact('cd'));
}

Определить маршрут к методу yourcds ():

Route::post('/yourcds', 'ControllerName@youcds');

ВПоместите в файл cd.return такую ​​форму

<form action="/yourcds"  method="POST"> 
    @csrf 

    <input type="text" name="userInput" >

    <input type="submit" value="submit" >
</form>

В вашем методе параметр yourcds () palce Requsest:

public function yourcds(Request $request) {
    $this->middleware('guest');

    $user_input = $request->userInput
    $scores = DB::table('cd')
    ->join('customers', 'cd.fk_lend_id', '=', 'customer .lend_id')
    ->select('cd.fk_lend_id','cd.serialnumber','users.name', 'cd.created_at')
    ->where('cd.fk_lend_id',$request->$user_input)
    ->get();

    $cds = cd::latest()->paginate(20);

    return view('cd.yourcds',compact('cd'))
        -> with('i', (request()->input('page', 1) - 1) * 20);
}

Надеюсь, что это ответ

0 голосов
/ 23 мая 2018

Просто добавьте

->join('cd', 'cd.fk_lend_id', '=', 'customer.lend_id')

Должно быть

->join('customers', 'cd.fk_lend_id', '=', 'customer.lend_id')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...